несвязанный метод set_figure () должен быть вызван> с экземпляром Rectangle в качестве первого аргумента (вместо этого получил экземпляр Figure>) - PullRequest
0 голосов
/ 10 февраля 2019

Я использую оболочку python mathplotlib ruby.Все отлично работает с рисованием линий, но когда я пытаюсь нарисовать прямоугольники, это дает мне ошибку ниже.Сбой после точки привязки binding.pry в методе add_patch.Я неопытный в Python, поэтому не могу понять, что делать.Скорее всего, патчи не реализованы должным образом в gem, но я должен нарисовать эти прямоугольники, поэтому любая помощь будет полезна.

Ошибка:

> [40] pry(#<Renko>)> q axes.add_patch(renko) PyCall::PyError: <type
> 'exceptions.TypeError'>: unbound method set_figure() must be called
> with Rectangle instance as first argument (got Figure instance
> instead)   File
> "/usr/local/opt/python@2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes/_base.py",
> line 2032, in add_patch
>     self._set_artist_props(p)   File "/usr/local/opt/python@2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes/_base.py",
> line 956, in _set_artist_props
>     a.set_figure(self.figure) from (pry):52:in `add_patch'

Код:

 def plot_data(renko_data)
        x = renko_data.map {|a| Time.strptime(a[:date].to_s,'%s').to_s}
        y_renko =  renko_data.map {|a| a[:close].to_f}
        brick_size = 1
        plt = Matplotlib::Pyplot
        fig = plt.figure(1)
        brick_size = 2
        fig.clf()
        axes = fig.gca()
        data =   y_renko
        y_max = data.max
        prev_num = 0
        bricks = []
        data.each do |d|
          if d > 0
            bricks.push([1]*d)
          else
            bricks.push([-1]*delta.abs)
          end
        end
        bricks.each_with_index do |n,index|
          if n == 1
            facecolor='green'
          else
            facecolor='red'
          end
          prev_num += index
          x = prev_num * brick_size
          renko = plt.Rectangle([index, x], 1, brick_size, :facecolor=>facecolor, :alpha=>0.5) 
          binding.pry
          axes.add_patch(renko)
        end
        plt.show 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...