2017-03-19 8 views
0

私は、tkinterウィンドウにグラフを描画するためにmatplotlibモジュールを使用しています。 AxesSubplotオブジェクトを使ってグラフのスタイルを設定しています。AxesSubplotオブジェクト(matplotlib&tkinter)を使ってカーブの下に色を追加する

私の質問は:このオブジェクト(AxesSubPlotオブジェクト)を使ってグラフの曲線の下にどのように色を描くのですか?

もちろん
def graph_handle(self): 

    canvas = matplotlib.backends.backend_tkagg.FigureCanvasTkAgg(self.__fig, master=self.__SettingsFrame) 
    canvas.show() 
    canvas.get_tk_widget().pack(side=BOTTOM, fill=BOTH, expand=True) 

    self.__axes = self.__fig.add_subplot(1,1,1,axisbg='#221E1E') 
    self.__axes.plot([0]) 
    self.__axes.spines['bottom'].set_color('black') 
    self.__axes.spines['top'].set_color('white') 
    self.__axes.spines['left'].set_color('#221E1E') 
    self.__axes.spines['right'].set_color('#221E1E') 
    self.__axes.xaxis.label.set_color('#221E1E') 
    self.__axes.tick_params(axis='x', colors='black') 
    self.__axes.tick_params(axis='y', colors='#221E1E') 

    self.__fig.gca().clear() 
    self.__fig.gca().plot([0], [0]) 
    self.__fig.canvas.draw() 

私は、コードや他のものでTkinterの設定を持っている、あなたはそれが関連することだと思う場合は、コメントと私にこれを書き留め: これは私が設定して、グラフを描画するために使用するコードです追加します。

ありがとうございました。

編集: これまでのところ、コードはこのグラフ提供: をそして、私は(悪い描画のため申し訳ありませんが、それだけでデモだ)(曲線とダウン軸との間の)曲線下の色を追加したいです: enter image description here

EDIT2:

これは、プロットの配列が更新されるたびに、私は(すなわち、前その後、プロットする配列内の複数の値があるので、私は、グラフを更新する必要がある場合)を呼び出す機能です:

def update_plot(self, txnamount): 

    self.__GraphPlot[0].append(self.__TransactionsCurrently) 
    self.__GraphPlot[1].append(self.__WalletBalance+txnamount) 

    self.__axes.fill_between(self.__GraphPlot[0], self.__GraphPlot[1], facecolor="yellow") 

    self.__fig.gca().clear() 
    self.__fig.gca().plot(self.__GraphPlot[0], self.__GraphPlot[1], color="white", linewidth=0.8) 
    self.__fig.canvas.draw() 

答えて

0

Axes.fill_betweenを使用する必要があります。 matplotlib pageには良い例があります。

あなたが xyがプロットに配列されている

self.__axes.fill_between(x,y, facecolor='yellow') 

を使用すると思います。この場合

+0

動作しません。私は同じ関数でこの行を追加して何も起こらなかった(x、yは私のプログラムでは位置のリストなので、私はあなたのように関数に入れようとしたが、試してみた:np.asarray(x)、np.asarray (y)まだ何も起こらなかった)。私はまた、プロットを更新する関数にこの行を入れようとしましたが、何も起こりませんでした(上記の私の質問には、問題があるかどうか確認してください、プロットの更新配列でグラフを更新する関数を追加します)。 –

+0

Axesにプロットした後、 'axes.clear()'を呼び出すのは意味がありません。これにより、単に新たに追加された 'fill_between'プロットが削除されます。 – ImportanceOfBeingErnest

+0

私はなぜこの行を置いたのかわかりません。ありがとう! –

関連する問題