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

Plotly Python箱线图自定义X轴标签方法求助(新手)

嘿,作为Plotly新手,要给箱线图加自定义X轴标签其实很简单,我结合你的代码片段给你两种实用方案!

方法一:用Plotly Express(推荐,代码更简洁)

Plotly Express的box()函数对新手友好,能快速实现自定义X轴标签。假设你的x_label数组是对应每组箱线的名称(比如['实验组1', '实验组2']),我们可以先把数据整理成适合Express的格式,再生成图表:

import plotly.express as px
import numpy as np

# 你的原始数据(补全你省略的部分)
atn_time_1_1 = np.array([22,31,71,74,17,22,23,51,39])
atn_time_1_2 = np.array([27,30,20,40,29,35,22,45,32])
# 你的X轴标签数组
x_label = ['实验组1', '实验组2']

# 把数据转换成Express需要的长格式
data = []
for label, time_data in zip(x_label, [atn_time_1_1, atn_time_1_2]):
    for time in time_data:
        data.append({'分组': label, '响应时间': time})

# 生成箱线图
fig = px.box(data, x='分组', y='响应时间')
# 可选:设置X轴的整体标题(不是每个分组标签)
fig.update_layout(xaxis_title='实验组别')

# 本地显示图表
fig.show()
# 如果要上传到Plotly云端(对应你设置的credentials)
# import plotly.plotly as py
# py.plot(fig, filename='custom-x-label-boxplot')
方法二:用Graph Objects(兼容你现有代码风格)

如果你习惯用低阶的Plotly接口(和你代码里的plotly.plotly兼容),可以手动创建箱线轨迹,再通过tickvals和ticktext绑定自定义标签:

import plotly.graph_objects as go
import numpy as np
import plotly.plotly as py

# 你的数据
atn_time_1_1 = np.array([22,31,71,74,17,22,23,51,39])
atn_time_1_2 = np.array([27,30,20,40,29,35,22,45,32])
x_label = ['实验组1', '实验组2']

# 创建空图表并添加箱线轨迹
fig = go.Figure()
# 用数字占位X轴位置(0对应第一组,1对应第二组)
fig.add_trace(go.Box(y=atn_time_1_1, x=[0]))
fig.add_trace(go.Box(y=atn_time_1_2, x=[1]))

# 设置X轴自定义标签:tickvals对应轨迹的X位置,ticktext是你的标签
fig.update_layout(
    xaxis=dict(
        tickvals=[0, 1],
        ticktext=x_label,
        title='实验组别' # 可选:设置X轴整体标题
    )
)

# 显示或上传图表
fig.show()
# py.plot(fig, filename='custom-x-axis-boxplot')
几个关键注意点
  • 确保x_label的长度和你的箱线图组数完全一致,比如有3组数据,标签数组就要有3个元素
  • 如果你的x_label是对应单个数据点的标签(而非分组),只需要调整tickvals为数据点的原始X值即可
  • 旧版Plotly(你代码里的plotly.tools.set_credentials_file)完全兼容上面两种方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:47:55