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

如何使用Pandas Series中存储的(x,y)坐标序列绘制折线图?

问题根因

你当前的df['curves']是Pandas Series结构,每个元素对应一条独立曲线的(x,y)坐标列表,此前的方案直接对整个Series做转置/解包操作,相当于把多条曲线的坐标混合处理,因此无法得到正确结果。

可行解决方案

1. 绘制单条曲线

以绘制id=1对应的曲线为例:

# 取出单条曲线的坐标列表
single_curve = df.loc[df['id'] == 1, 'curves'].iloc[0]
# 拆分x、y坐标序列
x, y = zip(*single_curve)
# 绘图
plt.plot(x, y)
plt.show()

2. 绘制所有曲线到同一张画布

for curve_points in df['curves']:
    # 逐行处理每条曲线的坐标
    x, y = zip(*curve_points)
    plt.plot(x, y)
# 可自行添加坐标轴标注、图例、标题等配置
plt.show()

常见踩坑补充

如果从数据库读取的curves字段实际是字符串格式的列表(例如值为"[(1,2),(3,4)]"而非Python原生列表),需要先做格式转换再执行上述绘图操作:

import ast
df['curves'] = df['curves'].apply(ast.literal_eval)

此前方案报错说明

你用第二种方案时报not enough values to unpack错误,是因为np.array(data)转换后得到的是一维数组,每个元素是一条曲线的坐标列表,转置后仍为一维结构,无法拆分出x、y两个独立数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:45:03