【发布时间】:2018-11-26 17:36:31
【问题描述】:
以下代码为与分组变量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() 的palette 参数。但是,除非我遗漏了什么,否则我可以指定每个色调级别的颜色,但不能单独指定分组变量的值。
我还查看了this related question 的答案,它询问了关于sns.boxplot() 创建的盒须图的类似问题。接受的答案建议使用轴的 artists 属性访问表示条形的矩形。但是,sns.barplot() 似乎不像sns.boxplot() 那样使用artists:ax.artists 似乎总是一个空列表:
print(ax.artists)
[]
那么,我必须进行哪些更改才能使顶部的两个条显示为蓝色,底部的两个条显示为橙色?
【问题讨论】:
标签: matplotlib bar-chart seaborn