새소식

🐍 파이썬 (Python)

<matplotlib> + <tkinter> 그래프를 tkinter canvas 에 그려, 기능 추가하기 (1)

  • -

일단은 tkinter의 기능들을 사용하기 위해서는 tkinter의 canvas로 그래프를 옮겨야한다. 

 

기존의 matplotlib
TKinter의 canvas에서 그래프 그리기.

기존의 matplotlib에서 제공하던 버튼들이 사라졌다. (축소 확대, 저장버튼들)

다음에는 TKinter를 이용하여 여러가지 기능들을 추가해보려고 한다.

from matplotlib import pyplot as plt from matplotlib import animation import numpy as np import random import time # from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure import tkinter as Tk fig = plt.figure() #figure(도표) 생성 ax = plt.subplot(211, xlim=(0, 50), ylim=(0, 1024)) ax_2 = plt.subplot(212, xlim=(0, 50), ylim=(0, 512)) max_points = 50 max_points_2 = 50 line, = ax.plot(np.arange(max_points), np.ones(max_points, dtype=np.float)*np.nan, lw=1, c='blue',ms=1) line_2, = ax_2.plot(np.arange(max_points_2), np.ones(max_points, dtype=np.float)*np.nan, lw=1,ms=1) def init(): return line def init_2(): return line_2 def animate(i): y = random.randint(0,1024) old_y = line.get_ydata() new_y = np.r_[old_y[1:], y] line.set_ydata(new_y) print(new_y) return line def animate_2(i): y_2 = random.randint(0,512) old_y_2 = line_2.get_ydata() new_y_2 = np.r_[old_y_2[1:], y_2] line_2.set_ydata(new_y_2) print(new_y_2) return line_2 root = Tk.Tk() #추가 label = Tk.Label(root,text="라벨").grid(column=0, row=0)#추가 canvas = FigureCanvasTkAgg(fig, master=root) # canvas.get_tk_widget().grid(column=0,row=1) # anim = animation.FuncAnimation(fig, animate , init_func= init ,frames=200, interval=50, blit=False) anim_2 = animation.FuncAnimation(fig, animate_2 , init_func= init_2 ,frames=200, interval=10, blit=False) Tk.mainloop()
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.