【发布时间】:2022-08-03 00:38:03
【问题描述】:
我对python很陌生。我研究了一个箱形图,但发现很难为每个组填充不同的颜色。 我试图让所有人都有一个黑色的轮廓,但不能让他们用指定的颜色填充箱线图(如在我用来突出显示附加图像中的每一行的框架中。
好心的帮助
查看代码和结果:
df = pd.read_csv (path)
#colors = {\'Csi\':\'#DF9720\', \'Ph\':\'#138245\', \'Qc\':\'#A0D855\'}
colors = {\'Csi\':\'#000000\', \'Ph\':\'#000000\', \'Qc\':\'#000000\'}
fig = px.box(df, x=\"RD\", y=\"PRI\", facet_col=\'DARC\',facet_row=\'Species\', width= 800, height= 930, color=\'Species\', color_discrete_map = colors)
for data in fig.data:
data[\"width\"] = 17 #Change this value for bar widths
data[\'whiskerwidth\'] = 0.5
fig.update_traces(marker=dict(size=5),fillcolor=\'#A0D855\')
fig.update_layout(paper_bgcolor=\'white\',plot_bgcolor= \'white\',margin=dict(l=20, r=20, t=20, b=20),
title=None,
yaxis_range=[-0.2,0.05],
font=dict(
family=\"Arial\",
size=15,
color=\'black\',
)
)
fig.update_xaxes(showline=True, linewidth=1.2, linecolor=\'black\', mirror = True, ticks=\'outside\', tickfont_size=16, tickfont_family=\'Arial\', tick0=0, dtick=25)
fig.update_yaxes(showline=True, linewidth=1.2, linecolor=\'black\', mirror = True, ticks=\'outside\', tickfont_size=16, tickfont_family=\'Arial\', tick0=-0.20, dtick=0.05)
fig.show()
-
嗨@Gabriel-您能否提供一些足够的示例数据以便可以重新创建问题?另外,你到底在期待什么?您是否希望第一行所有框内的颜色为一种颜色,而第二行所有框内的颜色为不同颜色?请详细说明...
-
谢谢,@Redox。我在这里附上了一个样本。是的,我希望第一行是一种颜色,而第二行中的所有颜色都是另一种颜色。虽然线条保持黑色。有关示例数据,请参阅下面的链接。 drive.google.com/file/d/1plBbgWB8UtP5dMgVH9NEswkQwJ29yH7C/…
-
嗨@Gabirel - 据我所知,每行可以有不同的颜色,但框填充颜色将是边框颜色的较浅色调。您可以将所有行的填充颜色更改为相同,并保持边框颜色不同,但不能反过来。让我知道是否有帮助,我会添加答案
-
嗨@Redox,感谢您的回复。仔细查看我的代码后,我能够找到解决方法。谢谢你。我在数据 for 循环中添加了一个黑色标记,然后调整了“fig.update_traces”行来为每个组分配填充颜色(行 - 我的数据中的物种)。
标签: python graph boxplot plotly-python