2017-06-23 12 views
0

私はmatplotlibの使い方を学んでいますが、今は問題があります。 「tkinterプロジェクト」にFigureを作成してサブプロットを与えると、NavigationToolbar2TkAggを使用してツールバーを作成します。現在表示されているツールバーで、configure subplotオプションを削除したいが、そうする方法が見つからない。NavigationToolbar2TkAggからオプションを削除しますか?

これを行う方法はありますか?

答えて

0

これを解決するには、すでにこの質問に与えられた原則である:How to modify the navigation toolbar easily in a matplotlib figure window?

しかし、それを使用する方法は明らかではないかもしれません。そこで、hereのコードをCustomToolbarに適合させることができます。ツールバー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() 
+0

ありがとう、それはうまく動作します –

関連する問題