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