mirror of
https://github.com/Estom/notes.git
synced 2026-04-05 03:48:56 +08:00
matplotlib & pandas
This commit is contained in:
51
Python/matplotlab/gallery/widgets/span_selector.md
Normal file
51
Python/matplotlab/gallery/widgets/span_selector.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# 跨度选择器
|
||||
|
||||
SpanSelector是一个鼠标小部件,用于选择xmin / xmax范围并绘制下轴中所选区域的详细视图
|
||||
|
||||

|
||||
|
||||
```python
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib.widgets import SpanSelector
|
||||
|
||||
# Fixing random state for reproducibility
|
||||
np.random.seed(19680801)
|
||||
|
||||
fig, (ax1, ax2) = plt.subplots(2, figsize=(8, 6))
|
||||
ax1.set(facecolor='#FFFFCC')
|
||||
|
||||
x = np.arange(0.0, 5.0, 0.01)
|
||||
y = np.sin(2*np.pi*x) + 0.5*np.random.randn(len(x))
|
||||
|
||||
ax1.plot(x, y, '-')
|
||||
ax1.set_ylim(-2, 2)
|
||||
ax1.set_title('Press left mouse button and drag to test')
|
||||
|
||||
ax2.set(facecolor='#FFFFCC')
|
||||
line2, = ax2.plot(x, y, '-')
|
||||
|
||||
|
||||
def onselect(xmin, xmax):
|
||||
indmin, indmax = np.searchsorted(x, (xmin, xmax))
|
||||
indmax = min(len(x) - 1, indmax)
|
||||
|
||||
thisx = x[indmin:indmax]
|
||||
thisy = y[indmin:indmax]
|
||||
line2.set_data(thisx, thisy)
|
||||
ax2.set_xlim(thisx[0], thisx[-1])
|
||||
ax2.set_ylim(thisy.min(), thisy.max())
|
||||
fig.canvas.draw()
|
||||
|
||||
# Set useblit=True on most backends for enhanced performance.
|
||||
span = SpanSelector(ax1, onselect, 'horizontal', useblit=True,
|
||||
rectprops=dict(alpha=0.5, facecolor='red'))
|
||||
|
||||
|
||||
plt.show()
|
||||
```
|
||||
|
||||
## 下载这个示例
|
||||
|
||||
- [下载python源码: span_selector.py](https://matplotlib.org/_downloads/span_selector.py)
|
||||
- [下载Jupyter notebook: span_selector.ipynb](https://matplotlib.org/_downloads/span_selector.ipynb)
|
||||
Reference in New Issue
Block a user