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

如何解决Matplotlib散点图x轴区域标签相互重叠的问题

散点图

解决x轴标签重叠的常用方案

以下是可直接复用的处理方法,可根据你的实际场景组合使用:

  • 方案1:加宽画布、增大x轴分布范围
    调大画布宽度直接给x轴留出更多显示空间,同时手动设置x轴上下限让两端预留留白,避免边缘标签被截断:
    import matplotlib.pyplot as plt
    
    # 第一个参数为画布宽度,第二个为高度,可根据标签数量灵活调整
    plt.figure(figsize=(14, 7))
    # 你的区域标签列表示例:regions = ['欧洲', '南亚', '东亚', '北美', '南美', '非洲', '大洋洲']
    regions = [你的区域标签列表]
    # 左右各预留0.5单位的空白,让标签分布更均匀
    plt.xlim(left=-0.5, right=len(regions)-0.5)
    
  • 方案2:旋转x轴标签
    不需要调整画布尺寸的前提下,旋转标签可大幅降低重叠概率,设置ha='right'可以让标签和刻度对齐更美观:
    # rotation可按需调整为30/45/60度
    plt.xticks(ticks=range(len(regions)), labels=regions, rotation=45, ha='right')
    
  • 方案3:缩小标签字体大小
    若标签数量特别多,可适当调小字体节省显示空间:
    plt.xticks(fontsize=9)
    
  • 方案4:调整底部边距避免标签被截断
    旋转标签后如果底部标签显示不全,可调整画布底部留白:
    plt.subplots_adjust(bottom=0.25)
    

完整可运行示例代码

import matplotlib.pyplot as plt
import numpy as np

# 模拟散点图数据
regions = ['欧洲', '南亚', '东亚', '北美', '南美', '非洲', '大洋洲', '中亚', '东南亚', '中东']
x = np.arange(len(regions))
y = np.random.randint(10, 100, size=len(regions))

# 绘图流程
plt.figure(figsize=(14, 7))
plt.scatter(x, y, s=100, c='steelblue')
# 配置x轴属性
plt.xticks(ticks=x, labels=regions, rotation=45, ha='right', fontsize=10)
plt.xlim(left=-0.5, right=len(regions)-0.5)
# 调整底部边距防止标签截断
plt.subplots_adjust(bottom=0.25)
# 其他图表配置
plt.ylabel('对应数值')
plt.title('各区域指标散点分布')
plt.show()

内容的提问来源于stack exchange,提问作者T.KHAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:15:02