初始呼叫后重新调用matplotlib图

时间:2017-07-07 20:31:01

标签: python matplotlib tkinter

我有一个Tkinter GUI,可以创建预算计算器并存储交易。 GUI上的一个按钮是对脚本的调用,该脚本根据事务数据创建图表。

我第一次点击按钮,图表打开正常。如果我再次尝试单击该按钮,则会出现一个空白图。我相信这来自我最初的,

plt.show()

调用绘制图形的位置。有没有人遇到这样的问题?

GUI代码:

ViewCharts = Button(win,text = 'View Spending Charts')
ViewCharts.grid(row = 21,column = 1)

def view_charts():
    Graphs.plot_charts()

ViewCharts.configure(command = view_charts)

图表代码:

global fig
fig = plt.figure(figsize=(12, 9))
fig.subplots_adjust(hspace=.5)
global ax1
ax1 = fig.add_subplot(1,2,1)
global ax2
ax2 = fig.add_subplot(1,2,2)


def plot_charts():
    category_bar_chart()
    category_pie_chart()
    fig = plt.show()

其中category_bar_chart()和category_pie_chart()只是将图表添加到ax1和ax2中的函数。

非常感谢任何帮助或建议!我正在Mac / PC上使用Python3,具体取决于一天中的时间。谢谢!

1 个答案:

答案 0 :(得分:0)

问题是,当您执行fig时,您正在重新定义fig = plt.show(),因此在第一次通话后,您不再将地块存储在任何地方。只需改为plt.show()