在 plotly 中显式设置箱线图的颜色
Posted
技术标签:
【中文标题】在 plotly 中显式设置箱线图的颜色【英文标题】:Explicitly set colours of the boxplot in ploltly 【发布时间】:2020-10-06 04:28:54 【问题描述】:我正在使用plotly express
绘制boxplot
如下图:
px.box(data_frame=df,
y="price",
x="products",
points="all")
但是,产品的盒子显示的颜色相同。它们是四种产品。我想用不同的颜色给每个上色,使用额外的参数 color_discrete_sequence
不起作用。
【问题讨论】:
【参考方案1】:我使用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()
因此,如您所见,您可以使用plotly.express.box()
中的color
参数基于另一列简单地分配颜色。
【讨论】:
【参考方案2】:您需要在绘图之前添加此参数设置(作为有效解决方案的一部分),以便正确对齐(确实!)新颜色的箱形图。
fig.update_layout(boxmode = "overlay")
boxmode 设置“overlay”使绘图恢复到正常布局,在设置颜色后似乎被覆盖(设置为“group”)。
在情节帮助中,它提到了 boxmode:
"确定相同位置坐标的框如何显示在 图表。如果是“组”,则将框彼此相邻绘制 以共享位置为中心。如果'覆盖',框是 相互绘制 [...]"
希望这会有所帮助!回复
【讨论】:
以上是关于在 plotly 中显式设置箱线图的颜色的主要内容,如果未能解决你的问题,请参考以下文章