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

如何使用Pandas手动分配X轴值并绘制CSV多列独立图表

解决CSV多列独立绘图并自定义X轴刻度的问题

看起来你遇到的核心问题是pandas绘图时x参数的用法错误,加上还没实现批量处理所有列的逻辑。我来帮你一步步修正并达成需求:

问题拆解

你的代码里df.plot(x, y='column1')的写法不对——pandas的plot()方法中,x参数需要传入DataFrame的列名,而非外部生成的numpy数组。另外,你需要遍历12列生成独立图表,同时手动指定X轴的刻度值。

完整可运行代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 1. 读取你的CSV文件
df = pd.read_csv("你的文件路径.csv")

# 2. 定义你需要的X轴刻度值(包含0和2,步长0.2)
custom_x_labels = np.arange(0, 2.1, 0.2)

# 3. 遍历每一列,绘制独立图表
for column in df.columns:
    # 为每列创建新画布,避免图表重叠
    plt.figure(figsize=(8, 5))
    
    # 绘制当前列的折线图
    plt.plot(df[column])
    
    # 映射数据索引到自定义X刻度:把400020行的范围均匀映射到11个刻度点
    tick_positions = np.linspace(0, len(df)-1, len(custom_x_labels))
    plt.xticks(ticks=tick_positions, labels=custom_x_labels)
    
    # 添加图表细节
    plt.title(f"Trend for {column}")
    plt.xlabel("X Axis")
    plt.ylabel(column)
    
    # 显示当前图表
    plt.show()

关键细节说明

  • 自定义X轴刻度:用plt.xticks()同时指定刻度的位置和显示标签,把400020行的索引范围均匀映射到你需要的0、0.2…2这些值上,保证X轴显示符合预期。
  • 批量处理列:通过df.columns遍历所有列,每次创建新画布(plt.figure())确保每个图表独立显示。
  • 如果原始数据太密集导致折线图混乱,可以考虑采样优化:
    # 每40000行取一个样本,减少数据量
    sampled_df = df.iloc[::40000, :]
    for column in sampled_df.columns:
        plt.figure(figsize=(8,5))
        plt.plot(custom_x_labels, sampled_df[column])
        plt.xticks(custom_x_labels)
        plt.title(f"Sampled Trend for {column}")
        plt.show()
    

这样就能生成每列独立的图表,且X轴完全按照你想要的刻度显示啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:02:34