gpt4 book ai didi

matplotlib - 基于色调/调色板的条形图中的边缘颜色

转载 作者:行者123 更新时间:2023-12-04 00:00:04 25 4
gpt4 key购买 nike

我正在尝试为 barplot 设置边缘颜色创建使用 seaborn .问题似乎是当我使用色调参数时。

而不是拥有 单独的颜色对于每个单独的条,edgecolor 参数将颜色应用于整个色调/组。

通过这个简单的例子重现这个问题。

tips = sns.load_dataset("tips")
t_df = tips.groupby(['day','sex'])['tip'].mean().reset_index()

因此 t_df 将是,

enter image description here
clrs = ["#348ABD", "#A60628"]
t_ax = sns.barplot(x='day',y='tip',hue='sex',data=t_df,alpha=0.75,palette= sns.color_palette(clrs),edgecolor=clrs)
plt.setp(t_ax.patches, linewidth=3) # This is just to visualize the issue.

这给出的输出,

enter image description here

我想要的是蓝色条应该有蓝色边缘颜色和红色相同。这需要什么代码更改?

最佳答案

这有点hacky,但它完成了工作:

enter image description here

import matplotlib.patches

# grab everything that is on the axis
children = t_ax.get_children()

# filter for rectangles
for child in children:
if isinstance(child, matplotlib.patches.Rectangle):

# match edgecolors to facecolors
clr = child.get_facecolor()
child.set_edgecolor(clr)

编辑:

@mwaskom 的建议显然要简洁得多。为了完整性:
for patch in t_ax.patches:
clr = patch.get_facecolor()
patch.set_edgecolor(clr)

关于matplotlib - 基于色调/调色板的条形图中的边缘颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com