当前位置: 首页 > 知识库问答 >
问题:

对Seaborn条形图中的所有分组条形图使用相同的颜色

穆智刚
2023-03-14

以下代码为与分组变量y关联的每个“色调”值生成一个带有不同颜色条的条形图:

from matplotlib import pyplot as plt
import seaborn as sns

ax = sns.barplot(x=[3, 7, 12, 10], y=list("AABB"), hue=list("XYXY"))
plt.show()

我想更改颜色,以便属于相同分组值的所有条都具有相同的颜色。也就是说,y==“A”的前两个栏应该是橙色,而y==“B”的最后两个栏应该是蓝色。

我已经尝试了'sns.barplot()的调色板参数。但是,除非我遗漏了什么,否则这允许我指定每个色调级别的颜色,但不能单独指定分组变量的值。

我也看了一下这个相关问题的答案,它问了一些关于sns创建的框须图的类似问题。boxplot()。公认的答案建议使用轴的artists属性访问表示条的矩形。然而,似乎sns。barplot()使用艺术家的方式与使用sns的方式不同。boxplot():ax。艺术家始终显示为空列表:

print(ax.artists)
[]

那么,我必须改变什么,使顶部的两条显示为蓝色,底部的两条显示为橙色?

共有1个答案

汲永嘉
2023-03-14

这些条不是在美工中,而是在补丁中。因此,您可以循环使用ax。修补程序并根据您的喜好设置颜色。

from matplotlib import pyplot as plt
import seaborn as sns

ax = sns.barplot(x=[3, 7, 12, 10], y=list("AABB"), hue=list("XYXY"))
for i, bar in enumerate(ax.patches):
    bar.set_color("C{}".format(i%2))
plt.show()
 类似资料:
  • 我在一个项目中使用ChartJS,我需要为条形图中的每个条形图使用不同的颜色。 下面是条形图数据集的示例: 有没有什么方法可以把每个酒吧涂成不同的颜色?

  • 我正在使用gnuplot绘制条形图。 问题是:我希望每个酒吧都有不同的颜色。例如:红色的MSA-GA ACO和蓝色的MSA-GA PACO。 我该怎么做呢? 以下是我使用过的命令: “data.dat”:

  • 我使用MPAndroidChart条形图(分组数据集)显示两个用户的数据。它正在显示数据,但问题是,它从一开始就没有在x轴上显示数据,因此所有条形图都不可见。 阵列: 条形图: 我已经尝试了stackoverflow的答案,但没有解决我的问题。请帮助! 更新: 是否可以将标签与条形图居中?

  • 我正在尝试使用ChartJS创建一个条形图,如下所示: 我想知道如何分别为每个条添加渐变颜色,并根据它们的高度添加渐变颜色。 我在这里找到了一个非常接近的解决方案,但它为整个图形设置了,而不是单个条。 另外,如果我为每个条创建渐变,这个解决方案更接近,但是,我想根据条的高度设置渐变。 有没有办法指定根据酒吧高度,而不是坐标上的

  • 我正在尝试使用我自己的标签制作Seaborn条形图,代码如下: 但是,我得到一个错误: 有什么好处?

  • 我的条形图中的条形图未与标签对齐-请参阅:https://imgur.com/gallery/QVtIvXq 我的X轴: 任何帮助都将不胜感激