У меня есть график и навигация matplotlib, встроенные в форму tkinter. График отображается довольно хорошо, однако переключение на опцию «панорамирование» или «масштабирование» в строке меню может расстраивать. Довольно часто он не переключает режим, но затем внезапно в какой-то момент начинает работать.
Это добавляет панель навигации:
def __buildNavigationToolbarAndFrame(self):
# Add a frame where we will keep the graph
self.__frmNavigation = ttk.Frame(self.master, border=1,
relief=tk.SUNKEN)
self.__frmNavigation.grid(row=2, column=0, columnspan=3,
sticky=tk.N+tk.S+tk.E+tk.W, padx=10, pady=10)
FN = self.__frmNavigation
FN.__Toolbar = NavigationToolbar2Tk(self.__frmGraph.__Canvas, FN)
FN.__Toolbar.update()
#FN.__Toolbar.pack(padx=10, pady=10)
FN.__Toolbar.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W, padx=10, pady=10)
Это обновляет график после корректировки данных:
....
# Ensure tight layout in the graph so that it is all enclosed in
# the chart.
self.__frmGraph.__Figure.tight_layout()
# redraw the graph.
self.__frmGraph.__Figure.canvas.draw()
self.__frmNavigation.__Toolbar.update()