我plotly express
用来绘制boxplot
如下所示:
px.box(data_frame=df,
y="price",
x="products",
points="all")
然而,产品的盒子却以相同的颜色显示。它们是四种产品。我想用不同的颜色为每个上色,使用额外的参数color_discrete_sequence
不起作用。
我plotly express
用来绘制boxplot
如下所示:
px.box(data_frame=df,
y="price",
x="products",
points="all")
然而,产品的盒子却以相同的颜色显示。它们是四种产品。我想用不同的颜色为每个上色,使用额外的参数color_discrete_sequence
不起作用。
我正在使用plotly.express.data.tips()
作为示例数据集,并正在创建一个名为的新列mcolour
,以显示我们如何使用附加列进行着色。见下文;
## packages
import plotly.express as px
import numpy as np
import pandas as pd
## example dataset:
df = px.data.tips()
## creating a new column with colors
df['mcolour'] = np.where(
df['day'] == "Sun" ,
'#636EFA',
np.where(
df['day'] == 'Sat', '#EF553B', '#00CC96'
)
)
## plot
fig = px.box(df, x="day", y="total_bill", color="mcolour")
fig = fig.update_layout(showlegend=False)
fig.show()
color
因此,如您所见,您可以使用in 中的参数简单地基于另一列分配颜色plotly.express.box()
。
您需要在绘图之前添加此参数设置(作为有效解决方案的一部分),以便正确对齐(确实!)新颜色的箱形图。
fig.update_layout(boxmode = "overlay")
boxmode 设置“叠加”使绘图恢复到正常布局,在设置颜色后似乎被覆盖(作为设置“组”)。
在 plotly 帮助中,它谈到了 boxmode:
“确定如何在图表上显示同一位置坐标处的框。如果是“组”,则框会以共享位置为中心彼此相邻绘制。如果“叠加”,则框会彼此重叠绘制 [... ]"
希望这可以帮助!R