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

Plotly Python散点图分类Y轴默认间距调整技术求助

解决Plotly散点图Y轴分类变量间距过大的问题

核心思路

要缩小Y轴分类变量的默认间距,需从图表高度控制、Y轴刻度/范围配置两方面入手,通过手动调整替代Plotly的默认留白设置。

修改后的完整代码

fig_scatter = px.scatter(df_lv, x='frame', y='username', color='label_name', symbol='label_name',
                         title=f'{task_option}')
fig_scatter.update_traces(marker_size=10)
fig_scatter.update_layout(
    scattermode="group",
    scattergap=0.75,
    xaxis_range=[0, tasks_labels_df.frame.max()],
    # 按需设置图表高度,数值越小,分类间距越紧凑
    height=400,
    # 关闭Y轴自动边距,避免额外留白
    yaxis_automargin=False
)
# 关键配置:压缩Y轴分类间距
fig_scatter.update_yaxes(
    # 沿用数据中username的原有顺序
    categoryorder='array',
    categoryarray=df_lv['username'].unique(),
    # 缩小刻度间隔,默认值为1,数值越小间距越近
    dtick=0.8,
    # 手动设置Y轴范围,消除上下留白
    autorange=False,
    range=[-0.5, len(df_lv['username'].unique()) - 0.5]
)

参数说明

  • height:直接控制图表整体高度,根据你的username数量调整(比如20个分类设为500,10个分类设为350),高度越小,分类间垂直间距越紧凑。
  • dtick:控制Y轴相邻分类刻度的间隔,默认值为1,设置小于1的数值可进一步压缩分类间的空白。
  • range:手动锁定Y轴范围,从-0.5到分类总数-0.5,能彻底消除Plotly默认添加的上下留白。
  • yaxis_automargin=False:关闭自动边距计算,避免Plotly为Y轴标签预留过多不必要的空间。

这样调整后,生成的图表默认就会呈现紧凑的Y轴分类布局,无需手动拖拽调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:37:29