Обновление гистограммы Python Matplotlib на холсте - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь обновить гистограмму новыми значениями внутри функции.Я попробовал это так:

    #Add a Bar Graph with Matlab
    self.f = Figure(figsize=(8,3), dpi=75)
    x = [u'A1', u'A2', u'A3', u'A4', u'A5', u'A6', u'A7']
    y = ['%', '20%', '40%', '60%', '80%', '100%']

    self.ax = self.f.add_subplot(111)

    self.data = (20, 100, 30, 35, 27, 6)        
    self.ind = numpy.arange(6)  # the x locations for the groups
    self.width = .5

    self.ax.barh(self.ind, self.data, self.width, color="orange")

    self.ax.set_yticklabels(x, minor=False)
    self.ax.set_xticklabels(y, minor=False)     

    self.canvas = FigureCanvasTkAgg(self.f, master=self.master)
    self.canvas.show()
    self.canvas.get_tk_widget().grid(row=8,column=1, columnspan=4, rowspan=1, sticky=N+W, padx=25)

def update_bar():
    self.data = (100, 100, 30, 35, 27, 100)
    self.ax.clear()´
    self.ax.barh(self.ind, self.data, self.width, color="orange")

    self.canvas = FigureCanvasTkAgg(self.f, master=self.master)
    self.canvas.show()   

Но ничего не происходит.Что мне нужно сделать, чтобы обновить гистограмму новыми значениями?

1 Ответ

0 голосов
/ 25 апреля 2018

Nervermind, я понял:

    #call the clear method on your axes
    self.ax.clear()        
    #plot the new data
    self.data = (100, 100, 30, 35, 27, 6)        

    self.ax.set_yticklabels(self.x, minor=False)
    self.ax.set_xticklabels(self.y, minor=False)  

    self.ax.barh(self.ind, self.data, self.width, color="green")
    #call the draw method on your canvas
    self.canvas.draw()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...