写一个代码,画三十条折线图,在图上做一个小功能,刚开始一条也不显示,让使用者通过鼠标点击自行选择显示那几条,完整代码
时间: 2023-09-27 17:04:38 浏览: 51
以下是一个使用Python和Matplotlib库实现的示例代码,可以画出30条折线图,并通过鼠标点击选择哪些线条显示的交互式图表:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成30条随机折线图的数据
x = np.linspace(0, 10, 100)
y = np.random.rand(30, 100)
# 创建Matplotlib Figure对象和Axes对象
fig, ax = plt.subplots()
# 绘制所有折线图,但初始时不显示
lines = ax.plot(x, y.T, lw=2, alpha=0.7)
for line in lines:
line.set_visible(False)
# 创建一个字典,用于记录每条线的可见状态
line_dict = {}
for i, line in enumerate(lines):
line_dict[f'line{i+1}'] = line
# 定义鼠标点击事件的回调函数
def on_click(event):
if event.inaxes != ax:
return
for line_name, line in line_dict.items():
if line.contains(event)[0]:
line.set_visible(not line.get_visible())
plt.draw()
# 将鼠标点击事件绑定到Figure上
fig.canvas.mpl_connect('button_press_event', on_click)
# 显示图表
plt.show()
```
使用该代码,您可以生成一个包含30条折线图的图表,但一开始没有任何线条显示。你可以通过单击鼠标来选择要显示的线条,单击一次会切换该线条的可见状态。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)