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

如何调整Seaborn散点/蜂群图中数据点与X轴刻度的间距

调整Seaborn Stripplot/Swarmplot的数据点与X轴刻度间距

一、调整分组数据点的间距(红色箭头标注处)

你当前用dodge=True让同一Days下不同Group的点分开显示,要调整这些点的间距,直接修改dodge参数的数值即可:

  • 传入大于0.8的数值(比如dodge=1.2)会增大分组点之间的间距
  • 传入小于0.8的数值(比如dodge=0.5)会缩小间距

如果需要更精细的手动控制,可以获取每个分组的点对象,通过修改它们的X坐标来调整位置,但修改dodge参数是最便捷的方式。

二、调整X轴刻度的间距(绿色箭头标注处)

有两种常用方法调整X轴刻度的间距:

  1. 放大画布宽度:直接增大figsize的宽度值(比如从20改成25),刻度会随画布宽度自动拉开
  2. 手动调整轴属性:
    • 用ax.tick_params()调整刻度标签与轴的间距(pad参数)
    • 用ax.set_xlim()扩展X轴的左右范围,进一步拉开刻度之间的距离

完整修改示例代码

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

data = {'Days': np.full((48, 5), [4,7, 8, 9, 10]).reshape(-1),
        'Group': np.full((80, 3), ["Group1", "Group2", "Group3"]).reshape(-1), 
        'Value': np.random.rand(240)}
df = pd.DataFrame(data=data)

fig, ax = plt.subplots(figsize=(22, 10), dpi=80)
# 调整dodge值修改分组点间距
sns.stripplot(x=df.Days, y=df.Value, jitter=0, size=5, ax=ax, linewidth=1,
              dodge=1.2, hue=df.Group, palette="Set1", data=df)
# 调整X轴刻度标签的间距与大小
ax.tick_params(axis='x', pad=20, labelsize=12)
# 扩展X轴范围,拉开刻度间距
ax.set_xlim(-0.8, len(df['Days'].unique())-0.2)

plt.legend(bbox_to_anchor=(1.01, 1), loc='upper left')
plt.show()

针对Swarmplot的说明

如果使用swarmplot,调整数据点间距的逻辑完全一致:通过dodge参数控制分组间的偏移量;X轴刻度的调整方法和stripplot相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:35:23