鱼C论坛

 找回密码
 立即注册
查看: 2040|回复: 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       #间距


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  4. class testme:
  5.     def __init__(self,frame1):
  6.         self.frame1=frame1
  7.         self.button=Button(self.frame1,text="DRAWME",command=self.plot)
  8.         self.button1=Button(self.frame1,text="CLEARME",command=self.clearme)
  9.         self.button.pack()
  10.         self.button1.pack()

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

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

  20. root=Tk()
  21. aframe=Frame(root)
  22. testme(aframe)
  23. aframe.pack()  #packs a frame which given testme packs frame 1 in testme
  24. root.mainloop()
复制代码

看下这段代码,应该是你想要的效果吧,照着改改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-27 02:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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