You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将列表存储的多维度数据不同维度分别绘制到不同子图

Python matplotlib 实现多子图时序数据绘制

若未安装matplotlib依赖,可先执行命令 pip install matplotlib 完成安装。

你可以直接使用Python的matplotlib库实现需求,完整可运行代码如下:

import matplotlib.pyplot as plt

# 原始数据
time = [1633093403.754783918, 1633093403.755350983, 1633093403.760918965, 1633093403.761298577, 1633093403.761340378, 1633093403.761907443]
data = [[0,1], [1,1], [0,0], [1,0], [0,1], [1,1]]

# 提取两列待绘制数据
y_col1 = [item[0] for item in data]
y_col2 = [item[1] for item in data]

# 创建2行1列的子图布局
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(10, 6))

# 绘制第一个子图:data[n][0] 随时间变化
# 若需要更符合0-1跳变的展示效果,可将plot替换为step
ax1.plot(time, y_col1, marker='o', color='#2c7fb8')
ax1.set_ylabel('data[n][0]')
ax1.grid(alpha=0.3)
# 关闭时间戳的偏移显示,保证数值完整展示
ax1.ticklabel_format(useOffset=False, style='plain')

# 绘制第二个子图:data[n][1] 随时间变化
ax2.plot(time, y_col2, marker='o', color='#ff7f0e')
ax2.set_xlabel('Unix timestamp')
ax2.set_ylabel('data[n][1]')
ax2.grid(alpha=0.3)
ax2.ticklabel_format(useOffset=False, style='plain')

# 自动调整子图间距,避免标签重叠
plt.tight_layout()
plt.show()

关键逻辑说明

  • 先通过列表推导从data中拆分出两个维度的待绘制序列
  • 使用plt.subplots创建上下排列的两个子图对象,分别绑定两个绘图轴
  • 额外添加ticklabel_format配置,避免长时间戳默认被matplotlib截断显示为偏移量
  • 若你的数据是状态跳变类型,可将plot方法替换为step,更符合离散状态变化的可视化需求

内容的提问来源于stack exchange,提问作者aripod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:54:05