You need to enable JavaScript to run this app. 如何在matplotlib中按DataFrame同列值连接对应数据点
优惠活动
大模型
产品
解决方案
定价
更多

如何在matplotlib中按DataFrame同列值连接对应数据点

实现方法

核心思路是对a列做分组遍历,根据每组样本数量选择绘图方式:样本数≥2的绘制带标记的折线,单个样本仅绘制散点标记即可。

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 示例数据集
df = pd.DataFrame({'a': ['foo', 'foo', 'bar', 'baz', 'baz', 'baz', 'foobar'], 'x': [3, 4, 1, 5, 5.5, 5.2, 8]})

# 按a列分组绘图
for group_name, group_data in df.groupby('a', sort=False):
    y_values = group_data['x'].tolist()
    # 同组内x轴默认按顺序排列,可根据实际需求替换为对应x轴字段
    x_values = list(range(len(y_values)))
    
    if len(y_values) >= 2:
        # 多数据点绘制折线+标记
        plt.plot(x_values, y_values, marker='o', label=group_name)
    else:
        # 孤立点仅绘制散点标记
        plt.scatter(x_values, y_values, marker='o', label=group_name)

# 可选配置:隐藏组内x轴刻度(不需要可以删除)
plt.xticks([])
plt.ylabel('x取值')
plt.legend()
plt.show()

说明

  • 如果你的数据有专门的x轴对应字段,直接替换x_values = list(range(len(y_values)))即可,不需要用默认的组内顺序
  • 折线、散点的颜色、标记样式都可以根据需求自定义修改参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 18:45:03