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

旋转后x轴刻度标签分布不均问题求助

解决x轴刻度标签旋转后对齐不均的问题

核心修复步骤

  • 强制绑定刻度位置与标签
    不要依赖默认的xticks逻辑,手动指定每个标签对应的刻度位置,确保一一对应:

    # 假设参与者名称存在于df_LR的'Participant'列中
    x_positions = range(len(df_LR))
    plt.xticks(x_positions, df_LR['Participant'], rotation='vertical', ha='right', rotation_mode='anchor')
    
  • 调整对齐参数组合
    若ha='right'仍有错位,尝试搭配垂直对齐参数,或更换水平对齐方式:

    # 搭配垂直锚点固定位置
    plt.xticks(rotation='vertical', ha='right', va='top', rotation_mode='anchor')
    # 或改用居中对齐
    plt.xticks(rotation='vertical', ha='center', rotation_mode='anchor')
    
  • 修正x轴范围
    若手动设置过xlim,可能导致刻度偏移,确保范围覆盖所有刻度:

    plt.xlim(-0.5, len(df_LR)-0.5)
    
  • 升级matplotlib版本
    部分旧版本matplotlib存在垂直标签对齐的bug,升级到最新稳定版:

    pip install --upgrade matplotlib
    

完整可复用代码片段

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df_LR = pd.read_csv("Index_for_stats_LeftRight_merge.csv")
x = range(len(df_LR))
# 替换为你的实际列名
left_data = df_LR['Left_Index']
right_data = df_LR['Right_Index']

plt.figure(figsize=(12, 6))
# 绘制左指标棒棒糖图
plt.vlines(x=x, ymin=0, ymax=left_data, color='#4169E1', alpha=0.6)
plt.scatter(x=x, y=left_data, color='#1E90FF', s=60, alpha=0.8)
# 绘制右指标棒棒糖图
plt.vlines(x=x, ymin=0, ymax=right_data, color='#90EE90', alpha=0.6)
plt.scatter(x=x, y=right_data, color='#32CD32', s=60, alpha=0.8)

# 显式设置刻度与标签对齐
plt.xticks(x, df_LR['Participant'], rotation='vertical', ha='right', va='top', rotation_mode='anchor')
plt.xlim(-0.5, len(df_LR)-0.5)
plt.tight_layout()  # 自动调整布局避免标签截断
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:50:10