150多条的时序数据,用matplotlib画折线图,请写出详细代码,保证图像清晰不拥挤
时间: 2024-11-03 21:19:19 浏览: 8
python使用matplotlib模块绘制多条折线图、散点图
为了清晰地绘制150多条时序数据的折线图,可以使用`plt.subplots()`来创建子图网格,然后对每一组数据分别绘制成不同的线条。下面是一个详细的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 假设我们有150多条数据,每一条数据由时间(x轴)和对应的值(y轴)组成
data_points = ... # 你的150多条数据,每个元素应该是 (time, value) 的元组或列表
# 创建一个2列的子图网格,共分5行,以便于展示这么多数据
fig, axs = plt.subplots(nrows=5, ncols=3, figsize=(10, 20), sharex=True)
for i, ax in enumerate(axs.flat): # 遍历每一个子图
time, values = zip(*data_points[i * 3:(i + 1) * 3]) # 分割数据为时间序列和对应值
ax.plot(time, values, label=f'Data Set {i+1}') # 绘制折线图并添加标签
ax.legend() # 显示图例
ax.set_title(f"Data Set {i+1}") # 设置子图标题
ax.grid(True) # 添加网格
ax.xaxis_date() # 如果时间是以日期形式存储,设置x轴为日期格式
ax.margins(y=0.1) # 调整y轴范围以避免过于拥挤
plt.tight_layout() # 自动调整子图之间的间距以防止拥挤
plt.show() # 显示图形
```
这段代码会创建一个5行3列的网格,每个小格子代表一组数据。通过`sharex=True`,我们可以共享x轴刻度,使得整个图表看起来更加整洁。
阅读全文