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

Python中以离散X轴为标签绘制CSV列数据垂直散点图的咨询

实现方案
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据逻辑和原代码完全一致
df = pd.read_csv("data.csv", delimiter=",")
col_names = df.columns.tolist()
col_count = len(col_names)
# 生成X轴坐标,50列对应位置0到49
x_pos = list(range(col_count))

# 可自行调整画布大小适配列数
plt.figure(figsize=(15, 7))

# 逐行遍历数据,每行使用唯一颜色绘制
for row_idx in range(len(df)):
    row_values = df.iloc[row_idx].values
    # 同一行所有点颜色统一,alpha设置透明度避免重叠看不清
    plt.scatter(x_pos, row_values, label=f"第{row_idx+1}行", alpha=0.7)

# 坐标轴配置和原箱线图完全一致
plt.xticks(x_pos, col_names, rotation=90, ha='right')
plt.yscale('log') # 修正原代码缺少字符串引号的语法问题
plt.xlabel("指标标签")
plt.ylabel("数值(对数坐标)")

# 如果不需要图例可注释下行,避免图例过多遮挡图表
# plt.legend(bbox_to_anchor=(1.02, 1), loc="upper left")

plt.tight_layout() # 自动调整布局避免X轴标签被截断
plt.show()

可选优化:重叠点处理

如果同列数值接近导致点堆叠无法区分,可以给X坐标添加轻微横向抖动,不影响垂直分布的数值展示,仅需修改scatter对应代码:

# 给每个X坐标添加±0.1范围内的随机偏移,避免完全重叠
jitter_x = [x + pd.np.random.uniform(-0.1, 0.1) for x in x_pos]
plt.scatter(jitter_x, row_values, label=f"第{row_idx+1}行", alpha=0.7)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:48:03