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
相关产品推荐
相关产品推荐

