龙岗在线网站制作,代运营一个月多少钱,芜湖门户网站建设多少钱,免费网页制作软件下载建议你把代码格式化一下#xff0c;编辑框上有代码块选项#xff0c;选中代码再点击如下图标就可以格式化。说说这段代码的问题。因为tk我没怎么用过#xff0c;说明如果有错#xff0c;帮忙指正。def figure(self):f1Figure((4,3))self.f11f1.add_subplot(111)self.canvas…建议你把代码格式化一下编辑框上有代码块选项选中代码再点击如下图标就可以格式化。说说这段代码的问题。因为tk我没怎么用过说明如果有错帮忙指正。def figure(self):f1Figure((4,3))self.f11f1.add_subplot(111)self.canvasFigureCanvasTkAgg(f1,self.root)self.canvas.get_tk_widget().place(x0,y50)f2Figure((4,3))self.f22f2.add_subplot(111)self.canvasFigureCanvasTkAgg(f2,self.root)self.canvas.get_tk_widget().place(x400,y50)首先你要理解什么是canvas它的英文解释帆布、油画布。可以理解为画纸。梳理下上面的逻辑创建一个名为f1的figure在f1中创建了名为f11的plot创建了名为canvas的画布并传入名为f11为figure创建一个名为f2的figure在f1中创建了名为f22的plot创建了名为canvas的画布并传入名为f22为figurecanvas前后被赋值两次但canvas只能指向一张画纸。指向了第二张必然失去对第一张的引用第一张画纸就被清理掉。画纸上只能有一个figuref1是挂在第一张上的此时在f1中的f11上作画其实就相当于在空中挥笔毫无痕迹。修改之后的代码是什么样子如下lass Ra:def __init__(self):self.root Tk()self.x np.arange(0, 1, 0.01)self.root.title(Ra)self.root.geometry(800x400300100)self.canvas Canvas()self.figure()self.radio_button()self.root.mainloop()def figure(self):f Figure((8, 3))self.plot1 f.add_subplot(1, 2, 1)self.plot2 f.add_subplot(1, 2, 2)self.canvas FigureCanvasTkAgg(f, self.root)self.canvas.get_tk_widget().place(x10, y50)def radio_button(self):var StringVar()r1 Radiobutton(self.root, textsin, variablevar, valueA, commandself.sin)r1.place(x10, y10)r2 Radiobutton(self.root, textcos, variablevar, valueB, commandself.cos)r2.place(x150, y10)def sin(self):self.plot1.clear()self.y np.sin(self.x)self.plot1.plot(self.x, self.y)self.canvas.draw()def cos(self):self.plot2.clear()self.yy np.cos(self.x)self.plot2.plot(self.x,self.yy)self.canvas.draw()if __name____main__:raRa()主要看其中一段def figure(self):f Figure((8, 3))self.plot1 f.add_subplot(1, 2, 1)self.plot2 f.add_subplot(1, 2, 2)self.canvas FigureCanvasTkAgg(f, self.root)self.canvas.get_tk_widget().place(x10, y50)首先创建了名为f的figure通过add_subplot在其中画了两个plot布局为一行两列。然后将这个figure附在了某张画布上。此时只有一个canvas作出的画就可以展示了。