Обновление сюжета внутри класса - PullRequest
0 голосов
/ 09 июля 2019

Я тестирую API интерактивных брокеров, где я пытаюсь построить некоторую дату в реальном времени.

Каждый раз, когда мы получаем новые данные, выполняется функция tickPrice внутри класса TestApp.Внутри этого класса я могу строить и обновлять данные.

class TestApp(EWrapper, EClient, Plotter):

    def __init__(self):
        EClient.__init__(self, self)

    def tickPrice(self, some_parameters):

        price = we_have_the_new_price

        # to plot the first time 
        if(self.boot_plot == False):
            self.boot_plot = True
            self.plotthing()

        else:
            print('Animate')
            self.updating()

Класс построения определяется следующим образом:

class Plotter(object):

    fig = None
    sp = None

    def plotthing(self):
        print('plotting for the first time.')
        self.fig = plt.figure()
        self.sp = self.fig.add_subplot(111)
        self.sp.plot(self.price, 'o-')
        self.data = np.random.rand(10)
        plt.show(block = False)

    def updating(self):
        print('updating')
        self.sp.cla();
        self.sp.plot(price, 'o-')
        plt.show(block = False)

Однако, когда я запускаю этот код, ничегослучается, т.е. я не вижу изображения.Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 10 июля 2019

Не уверен на 100%, если это проблема, не видя остальной части вашего кода (например, импорт, фактический оператор, который вы вызываете, и т. Д.), Но у вас есть опечатка в вашем определении updating:

    def updating(self):
        print('updating')
        self.sp.cla();
        self.sp.plot(price, 'o-')
        plt.show(block = False)

Строка plot должна быть self.sp.plot(self.price, 'o-'), верно?

Другой очевидный ответ - что-то не так с вашей env / настройкой вашего бэкэнда matplotlib.Если вы просто делаете простой график:

import matplotlib.pyplot as plt

plt.plot((0,1), (0,1))
plt.show()

, это правильно отображается?Если нет, то у вас проблема с конфигурацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...