如何在 python 中为 plotly boxplot 添加标签?
Posted
技术标签:
【中文标题】如何在 python 中为 plotly boxplot 添加标签?【英文标题】:How do you add labels to a plotly boxplot in python? 【发布时间】:2014-12-19 15:23:13 【问题描述】:我有以下代码;
y = errnums
err_box = Box(
y=y,
name='Error Percent',
boxmean='sd',
marker=Marker(color='red'),
boxpoints='all',
jitter=0.5,
pointpos=-2.0
)
layout = Layout(
title='Error BoxPlot',
height=500,
width=500
)
fig = Figure(data=Data([err_box]), layout=layout)
plotly.image.save_as(fig, os.path.join(output_images, 'err_box.png'))
生成如下图像;
我想做的是以下两件事;
1) 在 y 轴数字旁边添加 %。 (而不是使用传统的 y 轴标签显示“错误 (%)”)
2) 标记所有重要点:均值、第一四分位数、第三四分位数和标准差。理想情况下,标签应该是该行旁边的 4 sig-fig ('.2f') 数字。
另外,stdev 是虚线,菱形代表 1 sigma? 2 西格玛?
【问题讨论】:
【参考方案1】:对于标签,请尝试annotations. 您必须计算四分位数,并且要自己定位标签。
简单示例:
import plotly.plotly as py
from plotly.graph_objs import *
data = Data([
Box(
y=[0, 1, 1, 2, 3, 5, 8, 13, 21],
boxpoints='all',
jitter=0.3,
pointpos=-1.8
)
])
layout = Layout(
annotations=Annotations([
Annotation(
x=0.3,
y=8.822,
text='3rd Quartile',
showarrow=False,
font=Font(
size=16
)
)
])
)
fig = Figure(data=data, layout=layout)
plot_url = py.plot(fig)
Simple Python boxplot
我建议在 Plotly 工作区中添加和定位注解,然后查看生成的代码:
菱形显示平均值,距离平均值 +- 1 个标准差。
目前无法在 y 轴标签上添加 %。
【讨论】:
我写的程序需要自带,无法手动设置注解。我可以让 python 计算四分位数和平均值(可能通过numpy
),然后将其用于注释中的 y 值吗? x 值可能只是一些默认偏移量。
我已经通过numpy.percentile
弄明白了。
在 3D 绘图上怎么样?我在 Annotations
或 Annotations
类中没有看到 zaxis。以上是关于如何在 python 中为 plotly boxplot 添加标签?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 pandas.DataFrame.plot() 中为标题设置字体大小?