Thư viện Python Matplotlib rất hữu ích trong các ứng dụng mà chúng ta cần trực quan hóa các điểm dữ liệu và vẽ biểu đồ và biểu đồ để phân tích dữ liệu. Giả sử chúng tôi muốn tạo một ứng dụng tkinter nơi chúng tôi có thể xử lý cú pháp LaTex.
Cú pháp LaTex được sử dụng để chuẩn bị tài liệu khoa học như, công thức, ký hiệu khoa học, ký tự toán học và dấu chấm câu. Để chuẩn bị đơn đăng ký, chúng tôi bắt buộc phải sử dụng matplotlib và TkAgg (API phụ trợ cho Matplotlib trong Tkinter) các mô-đun. Các bước sau được sử dụng để cấu trúc các chức năng và tiện ích ứng dụng,
- Nhập các thư viện bắt buộc như Matplotlib, Tkinter, Ttk (để tạo kiểu cho widget), TkAgg, v.v.
- Thêm Khung và xác định nhãn cũng như tiện ích Mục nhập trong đó.
- Xác định kích thước của Hình bằng cách sử dụng figure () trong Matplotlib. Hình này có thể được sử dụng để vẽ cú pháp trong canvas.
- Bây giờ, hãy tạo một tiện ích Canvas nơi chúng tôi sẽ xác định hình vẽ của mình bằng cách sử dụng TkAgg .
- Xác định một hàm để lấy nội dung của tiện ích Entry và chuyển đổi văn bản trong một hình bằng cách sử dụng hàm được xác định trước trong Matplotlib, tức là text () .
- Hiển thị kết quả đầu ra trên canvas sau khi liên kết sự kiện Quay lại hoặc Nhấp với chức năng.
Ví dụ
# Import required libraries from tkinter import * from tkinter import ttk import matplotlib import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg # Use TkAgg in the backend of tkinter application matplotlib.use('TkAgg') # Create an instance of tkinter frame win = Tk() # Set the size of the window win.geometry("700x350") # Set the title of the window win.title("LaTex Viewer") # Define a function to get the figure output def graph(text): # Get the Entry Input tmptext = entry.get() tmptext = "$"+tmptext+"$" # Clear any previous Syntax from the figure wx.clear() wx.text(0.2, 0.6, tmptext, fontsize = 20) canvas.draw() # Create a Frame object frame = Frame(win) frame.pack() # Create an Entry widget var = StringVar() entry = Entry(frame, width=70, textvariable=var) entry.pack() # Add a label widget in the frame label = Label(frame) label.pack() # Define the figure size and plot the figure fig = matplotlib.figure.Figure(figsize=(7, 4), dpi=100) wx = fig.add_subplot(111) canvas = FigureCanvasTkAgg(fig, master=label) canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1) canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1) # Set the visibility of the Canvas figure wx.get_xaxis().set_visible(False) wx.get_yaxis().set_visible(False) win.bind('<Return>', graph) win.mainloop()
Đầu ra
Thực hiện đoạn mã trên sẽ hiển thị một cửa sổ có tiện ích Entry và một biểu đồ hình. Bây giờ, hãy nhập một số biểu thức khoa học để hiển thị kết quả đầu ra ở định dạng LaTex.