2024. 4. 5. 22:02ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 Tkinter 애플리케이션에서 Matplotlib 라이브러리의 그래프를 표시하는 방법을 배웁니다.
Tkinter 애플리케이션의 matplotlib에서 막대 차트 표시
Matplotlib는 Python으로 전문적인 시각화를 생성하기 위한 타사 라이브러리입니다. Matplotlib 은 타사 라이브러리이므로 사용하기 전에 설치해야 합니다.
matplotlib 패키지를 설치하려면 다음 pip명령을 사용할 수 있습니다.
!pip install matplotlib
다음 matplotlib 프로그램은를 사용하여 인기도 기준 상위 5개 프로그래밍 언어를 보여주는 막대 차트를 만듭니다.
import tkinter as tk
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg,
NavigationToolbar2Tk
)
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('Tkinter Matplotlib Demo')
# prepare data
data = {
'Python': 11.27,
'C': 11.16,
'Java': 10.46,
'C++': 7.5,
'C#': 5.26
}
languages = data.keys()
popularity = data.values()
# create a figure
figure = Figure(figsize=(6, 4), dpi=100)
# create FigureCanvasTkAgg object
figure_canvas = FigureCanvasTkAgg(figure, self)
# create the toolbar
NavigationToolbar2Tk(figure_canvas, self)
# create axes
axes = figure.add_subplot()
# create the barchart
axes.bar(languages, popularity)
axes.set_title('Top 5 Programming Languages')
axes.set_ylabel('Popularity')
figure_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
if __name__ == '__main__':
app = App()
app.mainloop()
동작 방식.
먼저 matplotlib 모듈을 가져옵니다.
import matplotlib
use() 함수를 호출하여 matplotlib이 사용할 백엔드를 알려줍니다.
matplotlib.use('TkAgg')
이 경우 TkAggTkinter에 통합하기 위해 만들어진 백엔드를 사용합니다.
둘째, 다음 Figure, FigureCanvasTkAgg 및 NavigationToolbar2Tk 클래스를 가져옵니다.
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
FigureCanvasTkAgg,
NavigationToolbar2Tk
)
Figure 클래스는 matplotlib 차트가 그려질 그리기 영역을 나타냅니다.
FigureCanvasTkAgg 클래스는 Figure 와 Tkinter Canvas 사이의 인터페이스입니다.
NavigationToolbar2Tk는 그래프의 그림에 대한 내장 도구 모음입니다 .
셋째, 막대 차트에 표시할 데이터를 준비합니다.
data = {
'Python': 11.27,
'C': 11.16,
'Java': 10.46,
'C++': 7.5,
'C#': 5.26
}
languages = data.keys()
popularity = data.values()
데이터는 키가 프로그래밍 언어이고 값이 인기도(%)로 구성된 사전입니다.
넷째, Figure 차트를 보관할 항목을 만듭니다.
figure = Figure(figsize=(6, 4), dpi=100)
Figure 개체는 인치 단위의 크기와 인치당 도트 수(dpi)라는 두 가지 인수를 사용합니다. 이 예에서는 600×400 픽셀 그림을 만듭니다.
다섯째, Figure 개체를 Tkinter의 Canvas 개체 연결하는 FigureCanvasTkAgg 개체를 만듭니다.
figure_canvas = FigureCanvasTkAgg(figure, self)
FigureCanvasTkAgg 객체는 Canvas 객체가 아니지만 Canvas 객체를 포함한다는 점에 유의하세요.
여섯째, matplotlib의 내장 도구 모음을 만듭니다.
NavigationToolbar2Tk(figure_canvas, self)
일곱째, Figure에 서브플롯을 추가하고 서브플롯의 축을 반환합니다.
axes = figure.add_subplot()
여덟째, 축의 bar() 메소드를 호출하고 언어와 인기도를 전달하여 막대 차트를 만듭니다. 또한 y축의 제목과 레이블을 설정합니다.
axes.bar(languages, popularity)
axes.set_title('Top 5 Programming Languages')
axes.set_ylabel('Popularity')
마지막으로 Tkinter의 루트창에 차트를 배치합니다.
figure_canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1)
요약
- matplotlib 라이브러리를 사용하여 Tkinter 애플리케이션에서 전문가 수준의 시각화를 만듭니다.
'GUI > tkinter' 카테고리의 다른 글
Tkinter System Tray. (0) | 2024.04.06 |
---|---|
Tkinter Validation (0) | 2024.04.04 |
Tkinter MVC (0) | 2024.04.03 |
How to Display a Progress Bar while a Thread is Running in Tkinter (0) | 2024.04.02 |
How to Schedule an Action with Tkinter after() method (0) | 2024.04.02 |