透視Matplotlib核心功能和工具包 - GUI中嵌入圖

國外課棧發表於2020-12-01

關聯知識

使用Matplotlib的滑塊和按鈕小部件

我們將使用滑塊確定極座標圖中要繪製的葉子數量。 每次拖動滑塊時,都會使用滑塊的值來繪製圖中的許多葉子。

我們將使用退出按鈕通過關閉圖形物件和視窗物件來退出應用程式。

讓我們設定要使用的後端。 這是為不同的GUI框架更改的唯一程式碼,以跨三個選定的GUI框架執行此繪圖:

import matplotlib
matplotlib.use('tkagg')

匯入所需庫:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Button, Slider

步驟細節:

  • 準備極座標圖的資料:
theta = np.arange(0., 2., 1./180.)*np.pi
  • 定義並例項化圖形:
fig = plt.figure(figsize=(6, 5), dpi=100)
  • 定義軸並在圖中例項化它:
ax = fig.add_subplot(111, projection='polar')
  • 繪製極座標圖:
initial_n = 4
ax.plot(theta, 5*np.cos(initial_n*theta))
  • 定義並例項化滑塊小部件:
ax_s = plt.axes([0.15, 0.05, 0.25, 0.05])
slider_n = Slider(ax_s, '#of leaves', 3, 10, valinit=initial_n, 
                  valstep=1.0)
  • 定義滑塊小部件的回撥函式:
def onchanged(s_value):
    ax.clear()
    ax.plot(theta, 5*np.cos(int(s_value)*theta)) 
  • 使用滑塊小部件的oncalled對應的回撥函式對映on_changed事件:
slider_n.on_changed(onchanged)
  • 定義並例項化按鈕小部件:
ebx = plt.axes([0.5, 0.005, 0.1, 0.05])
exit = Button(ebx, 'Quit')
  • 定義按鈕的回撥函式:
def close(event):
    plt.close('all')
  • 使用相應的回撥函式close關閉on_clicked事件:
exit.on_clicked(close)
  • 在指定的後端顯示圖:
plt.show()

分解程式碼

詳情參閱http://viadean.com/matplotlib_gui.html

相關文章