Я перехожу от использования Kivy Garden Graph к Matplotlib для некоторых дополнительных функций.В «графике» был массив графиков, который ссылался на каждую «линию», которую я наносил на график.
Кажется, в mapplotlib каждый раз, когда я строю график, существует отдельный массив «Artists», который представляет новые данные,каждый из них больше, чем предыдущий.
Мало того, что это кажется немного расточительным, но и ресурсоемким.Я предполагаю, что я просто использую это неправильно.Пожалуйста помогите?Код немного забит, чтобы получить соответствующие биты здесь.Предположим, что каждое выполнение обратного вызова включает новую точку данных в массивах timetable
и datatable
.
# Create figure and axes
self.fig = plt.figure()
self.ax = self.fig.add_subplot(1, 1, 1)
# Add the widget
self.ids.graph.add_widget(FigureCanvasKivyAgg(plt.gcf()))
# Initialize Graph
self.initgraph()
def initgraph(self, *args):
# Setup axes
plt.ylabel('Weight', color="white")
plt.xlabel('Seconds', color="white")
plt.gcf().subplots_adjust(bottom=0.2)
self.ax.set_facecolor((0, 0, 0))
self.ax.spines['bottom'].set_color((1, 1, 1))
self.ax.spines['left'].set_color((1, 1, 1))
self.ax.spines['right'].set_color((1, 1, 1))
self.ax.spines['top'].set_color((1, 1, 1))
self.ax.tick_params(axis='x', colors='white', which='both')
self.ax.tick_params(axis='y', colors='white', which='both')
plt.xticks(numpy.arange(self.xmin, self.xmax, self.xticks))
plt.yticks(numpy.arange(self.ymin, self.ymax, self.yticks))
self.fig.patch.set_facecolor((0, 0, 0))
self.ax.axis([self.xmin, self.xmax, self.ymin, self.ymax])
def callback(self, *args)
self.ax.plot(self.timetable[self.currenstep],
self.datatable[self.currenstep],
color=self.colortable[(self.currenstep % len(self.colortable))],
linewidth=self.linewidth
)
plt.gcf().canvas.draw_idle()