情节:如何使用go.box而不是px.box对数据进行分组和指定颜色?

问题描述 投票:1回答:1

问题:

使用绘图表达可以使用color=<group>中的px.box()分组数据并分配不同的颜色。但是如何使用plotly.graph_objectsgo.box()

做同样的事情

一些详细信息:

Plotly Express很好,但有时我们需要的不仅仅是基本知识。因此,我尝试改用Plotly Go,但后来又想不出如何在没有按文档中的说明为每个组手动添加go.Box的情况下,对具有组框的图进行装箱。

这是我从Plotly Express文档中获取的代码:

import plotly.express as px

df = px.data.tips()
fig = px.box(df, x="time", y="total_bill", color="smoker",
             notched=True, # used notched shape
             title="Box plot of total bill",
             hover_data=["day"] # add day column to hover data
            )
fig.show()

您如何在Plotly Go中实现相同的目标?因为color属性未被识别为有效。

import plotly.graph_objects as go

df = px.data.tips()
fig = go.Figure(go.Box(
    x=df.time, 
    y=df.total_bill, 
    color="smoker",
    notched=True, # used notched shape
            ))
fig.show()

此外,如何定义盒子的颜色?使用marker_color仅在Plotly Go中使用一种颜色(不能给出列表),并将所有框设置为该颜色,并且对于Plotly Express不是有效的属性。我尝试使用colorscale,但这也不起作用。

问题:使用plotly express,您可以在px.box()中使用color = 分组数据并分配不同的颜色。但是如何使用plotly.graph_objects和go.box()...

python plotly boxplot
1个回答
2
投票

让我们直接跳到答案,然后在细节上阐明一些细节。为了设置go.box图形的颜色,您必须将数据集划分为要研究的组,然后使用line=dict(color=<color>)将颜色分配给每个子类别。下面的代码段将向您展示如何使用plotlys内置的colorcycle获得与使用plotly express相同的结果,而无需为每个类别指定每种颜色。您还必须将图形布局设置为boxmode='group',以防止将框显示在彼此的顶部。

© www.soinside.com 2019 - 2024. All rights reserved.