【问题标题】:How do you add labels to a plotly boxplot in python?如何在 python 中为 plotly boxplot 添加标签?
【发布时间】: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 西格玛?

【问题讨论】:

    标签: python plotly


    【解决方案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 绘图上怎么样?我在 AnnotationsAnnotations 类中没有看到 zaxis。
    猜你喜欢
    • 2018-11-17
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2019-04-05
    • 1970-01-01
    相关资源
    最近更新 更多