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

使用Pandas dataframe数据绘制Matplotlib折线图时X轴文本标签缺失

解决Pandas折线图X轴标签不全的问题

嘿,我来帮你搞定这个X轴只显示部分标签的问题!你有22个文本类的Category标签要全部展示在折线图X轴上,默认情况下Pandas依赖的matplotlib会自动隐藏一些标签来避免拥挤重叠,咱们用几个简单的方法就能调整过来:

方法1:Pandas绘图+matplotlib刻度设置(最便捷)

首先确保你的数据是适合绘制多条折线的格式——因为Line列的每个条目对应一条折线,我们可以先把数据转成宽格式(用pivot方法),然后直接设置X轴的所有刻度和标签:

import pandas as pd
import matplotlib.pyplot as plt

# 假设你的数据集叫df,结构包含Category、Line、Value三列
# 转换为宽格式:Category作为索引,不同Line作为列,值为对应的数据
pivot_df = df.pivot(index='Category', columns='Line', values='Value')

# 绘制折线图
ax = pivot_df.plot(kind='line')

# 设置X轴显示所有22个Category标签
ax.set_xticks(range(len(pivot_df.index)))  # 指定刻度位置为所有Category的索引
ax.set_xticklabels(
    pivot_df.index, 
    rotation=45,  # 旋转标签避免重叠,角度可以按需调整(比如60度)
    ha='right',   # 标签右对齐,进一步优化显示
    fontsize=8    # 如果标签太长,可缩小字体
)

# 调整布局,防止底部标签被画布截断
plt.tight_layout()
plt.show()

方法2:手动用matplotlib绘制折线(灵活度更高)

如果你的数据格式不太规整,不想用pivot,可以手动遍历每个Line绘制折线,再强制设置X轴刻度:

import pandas as pd
import matplotlib.pyplot as plt

# 获取所有唯一的Line类别和Category标签
unique_lines = df['Line'].unique()
all_categories = df['Category'].unique()

# 创建绘图画布
fig, ax = plt.subplots()

# 逐个绘制每条折线
for line in unique_lines:
    # 筛选当前Line的数据
    line_data = df[df['Line'] == line]
    # 把文本类的Category转换成对应的索引位置(方便matplotlib定位X轴)
    x_positions = [list(all_categories).index(cat) for cat in line_data['Category']]
    ax.plot(x_positions, line_data['Value'], label=line)

# 设置X轴刻度和标签
ax.set_xticks(range(len(all_categories)))
ax.set_xticklabels(all_categories, rotation=45, ha='right')

# 添加图例区分不同折线
ax.legend()

plt.tight_layout()
plt.show()

方法3:用Seaborn快速实现

如果你习惯用Seaborn绘图,只需要在绘制后设置X轴标签的显示参数即可:

import seaborn as sns
import matplotlib.pyplot as plt

# 直接用seaborn绘制多折线图,hue区分不同Line
sns.lineplot(data=df, x='Category', y='Value', hue='Line')

# 强制显示所有X轴标签,调整旋转和对齐
plt.xticks(rotation=45, ha='right', fontsize=8)
plt.tight_layout()
plt.show()

小提示

  • 如果标签还是太挤,除了旋转和缩小字体,还可以尝试把画布调宽(比如plt.subplots(figsize=(12,6)))
  • tight_layout()一定要加,不然底部的标签很容易被画布边缘截断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:01:23