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

使用Pandas绘制折线图时X轴值未正确排序的问题求助

解决Python绘图时X轴日期排序异常问题

问题原因

你的X轴JOUR(PSDATE)列是字符串格式,pandas按字符串字典序排序,而非时间顺序,导致X轴显示混乱。

修复步骤

  • 将JOUR(PSDATE)列转换为datetime类型,让pandas识别为日期格式
  • 对转换后的日期索引进行排序,确保时间序列按正确顺序展示

修改后的代码

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('C:/Userscsv_grouped.csv', sep=';')
# 转换日期列,format参数需匹配你的日期格式(示例为日/月/年)
df['JOUR(PSDATE)'] = pd.to_datetime(df['JOUR(PSDATE)'], format='%d/%m/%Y')

for col in df.columns:
    if col != 'JOUR(PSDATE)' and col != 'GNODEB':
        plt.style.use('seaborn')
        # 先按日期排序原数据,再透视
        df_sorted = df.sort_values('JOUR(PSDATE)')
        pivoted_df = df_sorted.pivot(index='JOUR(PSDATE)', columns='GNODEB', values=col)
        
        fig, ax = plt.subplots()
        pivoted_df.plot(ax=ax, kind='line', legend=True)

        ax.set_xlabel('JOUR(PSDATE)')
        ax.set_ylabel(col)
        ax.set_title(f'Evolution of {col} by GNODEB')
        plt.legend(title='GNODEB', bbox_to_anchor=(1.05, 1), loc='upper left')
        plt.show()
        break

关键说明

  • pd.to_datetime()的format参数要和你的日期格式匹配:如果是月/日/年格式,就改成%m/%d/%Y
  • 也可以选择在透视完成后对索引排序,替换成pivoted_df = pivoted_df.sort_index(),效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:39:58