def matplotlib(i):
graph_data = open('sampleData.txt', 'r').read()
lines = graph_data.split('\n')
xs = []
ys = []
for line in lines:
if len(line) >1:
x, y = line.split(',')
xs.append(x)
ys.append(y)
fig.clear()
'Limits'
ax = plt.gca()
ax.set_xlim([80, -80])
ax.set_ylim([42, -42])
plt.axis('equal')
'Labels'
plt.xticks([-16, -32, -48, -64, -80, 0, 16, 32, 48, 64, 80])
plt.yticks([-42, -28, -14, 0, 14, 28, 42])
plt.show()
plt.scatter(xs, ys)
'Toolbar Buttons'
insertButt = Button(toolbar, text="Matplotlib TST", fg='Dark Red', bg="Dim Grey", activebackground='Dim Grey',
activeforeground='Dark Red', command=matplotlib).pack(side=LEFT, padx=2, pady=2)
ani = animation.FuncAnimation(fig, matplotlib, interval=1000)
当我尝试使用按钮运行该功能时,会出现问题。它没有使用按钮就可以正常工作。我收到了错误,
matplotlib()缺少1个必需的位置参数:'i'
我试图通过简单地删除,我来解决这个问题,然后我得到了错误,
matplotlib()获取0个位置参数,但是给出了1个
我也尝试将(i)命令= matplotlib(i)放在我的按钮后,我的图表变成空白,然后我收到了这个错误,
matplotlib()获取0个位置参数,但是给出了1个
我只是想找到如何制作实时图表,我甚至意味着什么,而且我不确定为什么只有当我在Tkinter中使用按钮运行它时它才起作用。
答案 0 :(得分:1)
这个
command=matplotlib
执行不带参数的函数matplotlib()
但是这个
FuncAnimation( matplotlib )
使用一个参数执行相同的函数。
当您有def matplotlib(i):
或def matplotlib():
您未在i
内使用matplotlib()
,因此您可以指定默认值None
def matplotlib(i=None):
它可以使用和不使用参数。
FuncAnimation
将“当前帧编号”发送为i
,您可以使用从列表中获取不同的值(显示它)或生成不同的图(即sin(i)
)。< / p>
答案 1 :(得分:0)
基于你现在所拥有的matplotlib(i) - 我真的没有在你的函数中使用所以我会删除它所以将你的定义从matplotlib(i)更改为matplotlib()。
根据评论进行编辑。