我想使用 來控制軸的范圍,RangeSliders,當我設定左/右或上/下滑塊時,圖形會自動更新。
我最初撰寫了一個代碼來使用一個按鈕來完成這項任務。
import tkinter as tk
from tkinter import *
import matplotlib
matplotlib.use('TkAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from RangeSlider.RangeSlider import RangeSliderH, RangeSliderV
root = Tk()
root.geometry("700x500")
def plot():
figure = Figure(figsize=(5, 4))
ax = figure.add_subplot(111)
ax.set_xlim(rs1.getValues())
ax.set_ylim(rs2.getValues())
canvas = FigureCanvasTkAgg(figure, root)
canvas.get_tk_widget().place(x=120, y=0)
figure.patch.set_facecolor('#f0f0f0')
hVar1 = IntVar() # left handle variable
hVar2 = IntVar() # right handle variable
rs1 = RangeSliderH(root, [hVar1, hVar2], Width=230, Height=55, padX=17, min_val=0, max_val=100, font_size=12,\
show_value=True, digit_precision='.0f', bgColor='#f0f0f0', line_s_color='black',\
line_color='black', bar_color_inner='black', bar_color_outer='#f0f0f0')
rs1.place(x=250, y=400)
vVar1 = IntVar() # top handle variable
vVar2 = IntVar() # down handle variable
rs2 = RangeSliderV(root, [vVar1, vVar2], Width=81, Height=180, padY=11, min_val=0, max_val=100, font_size=12,\
show_value=True, digit_precision='.0f', bgColor='#f0f0f0', line_s_color='black',\
line_color='black', bar_color_inner='black', bar_color_outer='#f0f0f0')
rs2.place(x=0, y=150)
button = Button(root, text="Plot", command=plot, width=10)
button.place(x=300, y=470)
root.mainloop()
我通過使用介紹的方法 3 從下面的鏈接獲取自動更新的想法撰寫了這段代碼:
RangeSlider 庫的檔案基本不存在,因此您只需將兩個滑塊變數之一系結到更新函式是任何人的猜測。我寧愿使用matplotlib 提供的RangeSlider 類作為未來的支持。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435639.html
標籤:Python matplotlib tkinter 范围滑块
