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

如何在Plotly Express小提琴图中将x轴设为分类类型避免轴拉伸

解决方案

有两种常用方法可以实现把x轴转为分类类型、避免拉伸的需求:

方法1:直接修改x轴类型(无需改动原数据)

在现有绘图代码后加一行设置x轴类型为分类即可,这是最便捷的方案:

import plotly.express as px

fig = px.violin(df, y="y", x="x", color="type", box=True, violinmode='overlay',points="all", 
          hover_data=df.columns)
# 新增这行设置x轴为分类类型
fig.update_xaxes(type='category')
fig.show()

方法2:提前将x列转为分类/字符串类型

修改原数据的x列数据类型,Plotly会自动识别为分类轴:

  • 转为字符串类型
df['x'] = df['x'].astype(str)
  • 转为pandas分类类型(如果后续需要保留数值排序逻辑更推荐)
df['x'] = pd.Categorical(df['x'], ordered=True)

改完数据后再运行你原来的绘图代码即可,x轴会自动按等间距展示。

两种方法最终都会让4个x取值等间隔排列,不会因为数值差导致轴被拉伸,同时不影响数据本身的展示和悬停信息的读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:36:03