python现有多个列表,刚开始画图时一条可不显示,在侧边加上一个下拉式的选项框,用户通过点击显示不同哦的折线,可单条也可多条一起显示,完整代码
时间: 2023-12-10 09:03:06 浏览: 37
好的,以下是一个示例代码:
``` python
import matplotlib.pyplot as plt
# 假设有三个列表 line1Data, line2Data, line3Data 分别表示三条折线的数据
# 这里只是示例数据,实际使用时需要根据具体情况进行修改
line1Data = [1, 2, 3, 4, 5]
line2Data = [2, 4, 6, 8, 10]
line3Data = [3, 6, 9, 12, 15]
# 创建图表
fig, ax = plt.subplots()
lines = []
lines.append(ax.plot(line1Data, label='折线1', visible=False)[0])
lines.append(ax.plot(line2Data, label='折线2', visible=False)[0])
lines.append(ax.plot(line3Data, label='折线3', visible=False)[0])
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.set_title('折线图')
# 创建下拉框
options = ['不显示', '折线1', '折线2', '折线3']
dropdown = plt.widgets.DropDown(
ax=plt.axes([0.1, 0.95, 0.3, 0.04]),
options=options,
value=options[0],
description='显示折线:',
layout={'width': 'initial'}
)
# 定义下拉框的回调函数
def on_dropdown_change(label):
if label == '不显示':
# 不显示任何折线
for line in lines:
line.set_visible(False)
else:
# 显示指定的折线
for line in lines:
if line.get_label() == label:
line.set_visible(True)
else:
line.set_visible(False)
plt.draw()
dropdown.on_trait_change(on_dropdown_change, 'value')
plt.show()
```
以上示例使用了 Matplotlib 库来绘制图表和下拉框,需要在代码中引入该库。具体使用方式可以参考 Matplotlib 的官方文档。