目錄:
ipywidgets 介紹
1. 什么是 ipywidgets
直接開始:
動態調整正弦波頻率
隨機散點圖
啟用交互式模式
使用滑塊和下拉菜單調整圖表樣式
使用布局管理器創建復雜界面
使用動畫創建動態圖表
最后:
綜合示例:動態儀表盤
ipywidgets 介紹
1. 什么是 ipywidgets
ipywidgets 是一個用于 Jupyter Notebook 和 JupyterLab 的交互式 HTML 小部件庫,允許用戶在 Jupyter Notebook 中創建交互式用戶界面。這些小部件可以與 Python 代碼無縫集成,使用戶能夠與數據進行互動,為學習、研究和開發提供沉浸式體驗。
安裝:
pip install ipywidgets
或者conda:
conda install -c conda-forge ipywidgets
2. 主要功能
-
豐富的交互控件:提供滑塊、文本框、按鈕、下拉菜單、復選框等多種控件。
-
事件處理:每個控件都可以響應事件,并調用指定的事件處理函數。
-
布局管理:支持靈活的布局管理,包括水平布局(HBox)、垂直布局(VBox)等。
-
富媒體內容展示:支持文本、圖像、視頻、音頻等富媒體內容的展示。
-
與 Matplotlib 集成:可以與 Matplotlib 結合,創建交互式圖表。
3. 應用場景
-
數據可視化:通過交互式控件調整參數,實時更新可視化結果。
-
教學與演示:利用滑動條和圖表結合,讓學生直觀理解數學函數的變化。
-
科學模型探索:在模型參數上應用滑塊,觀察不同參數對模型預測的影響。
-
應用原型開發:快速構建交互式應用原型,用于數據探索和分析。
直接開始:
動態調整正弦波頻率
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact# 定義繪圖函數
def plot_sine_wave(frequency=1):plt.clf() # 清除當前圖形x = np.linspace(0, 10, 100)y = np.sin(frequency * x)plt.plot(x, y)plt.title(f'Sine Wave: Frequency = {frequency}')plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.grid()plt.show()# 創建滑塊
interact(plot_sine_wave, frequency=(1, 10, 0.1))
``` [^13^]#### **1.2 動態調整正弦波振幅**
```python
def plot_sine_wave(amplitude=1):plt.clf()x = np.linspace(0, 10, 100)y = amplitude * np.sin(x)plt.plot(x, y)plt.title(f'Sine Wave: Amplitude = {amplitude}')plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.grid()plt.show()interact(plot_sine_wave, amplitude=(0.1, 5, 0.1))