鱼C论坛

 找回密码
 立即注册
查看: 1764|回复: 1

请问如何把图传到Tkinter创建的窗口中?

[复制链接]
发表于 2020-9-10 21:38:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用先Tkinter创建一个窗口:
a=tk.Tk()  #建立窗口
然后把b()生成的图表传到a窗口中,请问如何现实?


def b():
import random
import matplotlib.pyplot as plt
fig = plt.figure()  #创建窗口  facecolor='black' 指定背景颜色
ax = plt.gca()     #修正坐标
ax.set_facecolor('black')  #指定网格背景颜色
x = []
y = []
i=0
plt.ion()
while True:
    x.append(i)    #转入x轴坐标
    y.append(random.randint(1,1000)) ##转y轴坐标
    plt.xlim([0, 5000])#x轴的数值显示范围0-5000
    plt.ylim([0,1500])#y轴的数值显示范围0-1500
    plt.title('Scatter Graph')#图表名称
    plt.grid(c='r')   #网格线设置
    plt.plot(x,y,'y',linewidth=1)
    plt.pause(0.05) #暂停0.05秒
    i += 50       #间距


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-10 21:42:25 | 显示全部楼层
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from tkinter import *

class testme:
    def __init__(self,frame1):
        self.frame1=frame1
        self.button=Button(self.frame1,text="DRAWME",command=self.plot)
        self.button1=Button(self.frame1,text="CLEARME",command=self.clearme)
        self.button.pack()
        self.button1.pack()

    def plot(self):
        f=Figure(figsize=(5,1))
        aplt=f.add_subplot(111)
        aplt.plot([1,2,3,4])
        self.wierdobject = FigureCanvasTkAgg(f, master=self.frame1)
        self.wierdobject.get_tk_widget().pack()
        self.wierdobject.draw()

    def clearme(self):
       self.wierdobject.get_tk_widget().pack_forget()

root=Tk()
aframe=Frame(root)
testme(aframe)
aframe.pack()  #packs a frame which given testme packs frame 1 in testme
root.mainloop()
看下这段代码,应该是你想要的效果吧,照着改改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 16:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表