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

对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条形图,代码如下: 但是,我得到一个错误: 有什么好处?

  • 我试图理解他们条形图上的ChartJS文档。这对我来说没有意义,因为顶部的标签在一次意义上看起来似乎只适用于第一个栏(基于颜色),在另一种意义上,它适用于整个图表(它是唯一一个不在工具提示中的标签,它位于前面和中间) 我一直在努力使它更像他们的折线图,它显示了一个带有标签的图例和一个与图表上每条线相关的彩色正方形。(他们没有多行图表的示例,但它确实是这样工作的)。 我希望在顶部有一个图例,表示浅绿