我正在处理这个应用程序,它涉及在按下按钮后在空图上绘制线条或圆圈。一切都很好,直到突然,图表才停止更新。例如:
let myFloat : CGFloat = 1212.1212
let myStr : String = myFloat.onlyOneDigits
print(myStr) // 1212.1
let anotherFloat : CGFloat = 1.96
let anotherStr : String = anotherFloat.onlyOneDigits
print(anotherStr) // 1.9
按下按钮时的假设结果是应该出现直线,但事实并非如此。我添加了print语句来检查按钮是否正常工作,确实如此,所以我真的不知道这里的问题是什么。我目前正在使用Spyder(3.2.4)。
答案 0 :(得分:0)
一切正常,即正在绘制线条,但需要更新图形。您可以在绘图后使用['2014-01-01','2014-01-02','2014-01-03','2014-01-04','2014-01-05','2014-01-06', ...]
执行此操作。您的代码看起来像:
figure.canvas.draw()
您还可以使用f = Figure(figsize=(6, 6), dpi=100)
a = f.add_subplot(111)
root = tk.Tk()
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.mainwindow()
def mainwindow(self):
self.add_loci = Button(self)
self.add_loci["text"] = "Add Line"
self.add_loci["command"] = self.line
self.add_loci.pack(side = TOP)
# Plotting an empty graph
a.set_xlabel('Re')
a.set_ylabel('Im')
a.grid(b=None)
a.plot(0, 0)
# Setting up and showing the toolbar and the graph
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side = BOTTOM, fill=BOTH, expand=1)
toolbar = NavigationToolbar2TkAgg(canvas, root)
toolbar.update()
canvas._tkcanvas.pack(side = BOTTOM, fill=BOTH, expand=1)
def line(self):
a.plot([0, 10], [0, 10])
f.canvas.draw()
print('test')
app = Application(master=root)
app.mainloop()
制作您创建实例变量的画布。然后使用self.canvas = ...
。您的self.canvas.draw()
和mainwindow
功能将如下所示:
line
两者都会产生相同的结果。