0
我正在學習如何使用matplotlib,現在我有一個問題。當我在「tkinter項目」中創建一個圖並給它一個子圖時,我使用NavigationToolbar2TkAgg創建一個工具欄。在出現的當前工具欄中,我想刪除配置子圖選項,但找不到這樣做的方法。從NavigationToolbar2TkAgg中刪除選項?
有沒有辦法做到這一點?
我正在學習如何使用matplotlib,現在我有一個問題。當我在「tkinter項目」中創建一個圖並給它一個子圖時,我使用NavigationToolbar2TkAgg創建一個工具欄。在出現的當前工具欄中,我想刪除配置子圖選項,但找不到這樣做的方法。從NavigationToolbar2TkAgg中刪除選項?
有沒有辦法做到這一點?
的解決方案是,在這個問題已作出原則:How to modify the navigation toolbar easily in a matplotlib figure window?
但它可能不是很明顯如何使用它。所以我們可以使用CustomToolbar來調整here的代碼。該工具欄toolitems
屬性可以改變,以除去不需要的"Subplots"
按鈕。
import numpy as np
import Tkinter as tk
import matplotlib as mpl
from matplotlib.patches import Rectangle
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
# custom toolbar with lorem ipsum text
class CustomToolbar(NavigationToolbar2TkAgg):
toolitems = filter(lambda x: x[0] != "Subplots", NavigationToolbar2TkAgg.toolitems)
class MyApp(object):
def __init__(self,root):
self.root = root
self._init_app()
# here we embed the a figure in the Tk GUI
def _init_app(self):
self.figure = mpl.figure.Figure()
self.ax = self.figure.add_subplot(111)
self.canvas = FigureCanvasTkAgg(self.figure,self.root)
self.toolbar = CustomToolbar(self.canvas,self.root)
self.toolbar.update()
self.plot_widget = self.canvas.get_tk_widget()
self.plot_widget.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
self.toolbar.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
self.canvas.show()
# plot something random
def plot(self):
self.ax.plot([1,3,2])
self.figure.canvas.draw()
def main():
root = tk.Tk()
app = MyApp(root)
app.plot()
root.mainloop()
if __name__ == "__main__":
main()
謝謝,它很好地工作 –