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

如何在Matplotlib中为数据集中的每组数据绘制三维折线?

3D折线图绘制:按Cone值分组连接数据点

问题描述

数据集中每行包含三个数据项(cone、ramp、temp),同一cone值对应多组数据。如何为每个cone值对应的所有数据点绘制折线,达到示例图的要求?

现有代码

import matplotlib.pyplot as plt
import pandas as pd

from mpl_toolkits.mplot3d import Axes3D

dataset = pd.read_csv('data.csv')
X = dataset.iloc[:, 0:2].values
y = dataset.iloc[:, -1].values

fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], y, marker='.', color="red")
ax.set_xlabel("Cone")
ax.set_ylabel("Time")
ax.set_zlabel("Temp")

plt.show()

数据集

cone,ramp,temp
4,15,1141
4,60,1162
4,150,1183
5,15,1159
5,60,1186
5,150,1207
6,15,1185
6,60,1222
6,150,1243
7,15,1201
7,60,1239
7,150,1257
8,15,1211
8,60,1249
8,150,1271
9,15,1224
9,60,1260
9,150,1280
10,15,1251
10,60,1285
10,150,1305
11,15,1272
11,60,1294
11,150,1315
12,15,1285
12,60,1306
12,150,1326
13,15,1310
13,60,1331
13,150,1348
14,15,1351
14,60,1365
14,150,1384

解决方案

核心逻辑是按cone值分组,对每组数据单独绘制3D折线,同时保留散点增强数据辨识度。

修改后完整代码

import matplotlib.pyplot as plt
import pandas as pd
from mpl_toolkits.mplot3d import Axes3D

# 读取数据集
dataset = pd.read_csv('data.csv')

fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')

# 按cone分组遍历,绘制每组折线
for cone_val, group in dataset.groupby('cone'):
    x = group['cone'].values
    y = group['ramp'].values
    z = group['temp'].values
    # 绘制折线,添加图例标签
    ax.plot(x, y, z, marker='o', label=f'Cone {cone_val}')
    # 保留散点(可选,突出单个数据点)
    ax.scatter(x, y, z, color='red', marker='.')

# 设置坐标轴标签
ax.set_xlabel("Cone")
ax.set_ylabel("Ramp/Time")
ax.set_zlabel("Temp")
# 添加图例区分不同分组
ax.legend()

plt.show()

关键说明

  • dataset.groupby('cone'):将数据集按cone值拆分,每个分组对应同一cone的所有数据
  • ax.plot:绘制3D折线,marker='o'让折线节点显示圆点,label用于图例区分不同cone组
  • 散点绘制可选,若不需要突出单个数据点可删除对应行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:45:47