0

我有两个布尔变量,我尝试用组创建一个箱线图。每个组应该代表一个变量,并且应该包含两个箱线图,一个代表 TRUE,一个代表 FALSE。相反,我得到两组,一组代表 TRUE,一组代表 FALSE,每组有两个箱线图对应于每个变量,如附图所示:

箱形图

我知道组是从 xaxis 派生的。但是我怎样才能让变量名是组?我用于输出的代码:

trace3= Box(
 y=raw_matrix.TPS,
 x=raw_matrix.noClassGc,
 name='noClassGc',
 marker=Marker(
 color='#3F5D7D'
))

trace4= Box(
 y=raw_matrix.TPS,
 x=raw_matrix.aggresiveOpts,
 name='aggresiveOpts',
 marker=Marker(
 color='#0099FF'
 ))

data = Data([trace3, trace4])
layout = Layout(
 yaxis=YAxis(
 title='confidence',
 zeroline=False),
 boxmode='group',
 boxgroupgap=0.5
 )


fig = Figure(data=data, layout=layout)
plot_url = ploteczki.plot(fig, filename='Performance by categoricals parameters')
4

2 回答 2

0

您需要重新排列数据数组,使两条Box轨迹的'x'坐标分别为'noClassGc''aggresiveOpts'

这个IPython 笔记本向您展示了如何做到这一点。

于 2015-06-23T14:27:25.193 回答
0

或者,要通过其布尔箱线图表示每个组,您可以将每个轨迹分配给不同的 x 轴。这是一个例子:

trace0 = Box(
    y=raw_matrix_TPS,
    x=raw_matrix_noClassGc,
    name='noClassGc',
    marker=Marker(
        color='#3F5D7D'
    )
)
trace1 = Box(
    y=raw_matrix_TPS,
    x=raw_matrix_aggresiveOpts,
    name='aggresiveOpts',
    xaxis='x2',
    marker=Marker(
        color='#0099FF'
    )
)
data = Data([trace0, trace1])
layout = Layout(
    xaxis = XAxis(
        domain=[0, 0.55],
    ),
    xaxis2 = XAxis(
         domain=[0.55, 1],
    ),
    yaxis = YAxis(
         title='confidence',
         zeroline=False
    ),
    boxmode='group',
    boxgroupgap=0.5
)
fig = Figure(data=data, layout=layout)
plot_url = py.plot(fig, filename='Performance by categoricals parameters')

这是情节的链接

要了解更多信息,您可以查看 Plotly Python 参考

于 2015-06-23T17:31:53.277 回答