现有多个列表,画折线图,刚开始我不知道显示哪一条,为了方便使用,我在显示的时候加上一个可以选择具体显示哪一条折线的功能,不要用户输入选择,用户通过点击选择,而且用户可以根据自己选择选择显示一条或者多条,完整代码
时间: 2023-10-10 22:05:51 浏览: 21
好的,以下是一个示例代码,可以实现用户通过点击选择显示一条或者多条折线图:
```python
import matplotlib.pyplot as plt
# 定义数据
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10]
y2 = [1, 3, 5, 7, 9]
y3 = [3, 6, 9, 12, 15]
# 定义折线图函数
def plot_line(x, y, label):
plt.plot(x, y, label=label)
# 绘制折线图
plt.figure()
plot_line(x, y1, 'line1')
plot_line(x, y2, 'line2')
plot_line(x, y3, 'line3')
plt.legend(loc='upper left')
# 定义点击事件处理函数
def on_click(event):
line = event.artist
if line.get_visible():
line.set_visible(False)
else:
line.set_visible(True)
plt.draw()
# 注册点击事件处理函数
for line in plt.gca().get_lines():
line.set_picker(True)
plt.gcf().canvas.mpl_connect('pick_event', on_click)
# 显示图像
plt.show()
```
这个例子中,我们首先定义了三个列表 `y1`、`y2` 和 `y3`,然后定义了一个 `plot_line` 函数,用来绘制折线图。接着,我们在主函数中使用了该函数绘制了三条折线图,并使用 `plt.legend` 函数添加了图例。
然后,我们定义了一个 `on_click` 函数,用来处理点击事件。在该函数中,我们首先获取被点击的折线图,并根据其可见性设置其可见性。然后,我们使用 `plt.draw` 函数重新绘制图像。
接着,我们使用 `set_picker` 函数为每一条折线图注册点击事件处理函数,并使用 `mpl_connect` 函数将点击事件处理函数与图像的点击事件连接起来。
最后,我们使用 `plt.show` 函数显示图像,并等待用户的点击事件。
需要注意的是,这个例子中我们没有提供一个界面来让用户选择需要显示的折线图,而是让用户通过点击折线图来选择需要显示的折线图。如果你希望提供一个界面来让用户选择需要显示的折线图,可以参考之前的例子,并根据用户的选择来设置折线图的可见性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)