使用AxesSubplot对象在曲线下添加颜色(matplotlib& tkinter)

时间:2017-03-19 12:36:21

标签: python matplotlib graph tkinter tkinter-canvas

我使用matplotlib模块在tkinter窗口中绘制图形。 我使用AxesSubplot对象来配置图形的样式。

我的问题是:如何使用此对象(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()

1 个答案:

答案 0 :(得分:0)

您需要使用Axes.fill_betweenmatplotlib page上有一个很好的例子。

在这种情况下,你可以使用

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

其中xy是要绘制的数组。