[注意]这个问题已经好几次了,但似乎没有一个适用于当前版本的修复。 Define bar chart colors for pandas matplotlib with defined column和Matplotlib Bar Chart choose color if value is positive vs value is negative中提到的两种解决方案都不再适用
我想用条形图绘制数据框,并根据值指定颜色。低于阈值的所有值应为红色,高于绿色。
我的数据框看起来像这样: A是指数,'%'唯一的一栏
A %
--------------
a 1
b 10
c 50
d 80
我希望50以下的所有东西都是红色的,其余的都是蓝色的。数据框已按正确的升序排列。
我已经尝试了上述颜色的字典解决方案(添加了一个额外的列),没有成功;还有一些其他解决方案,比如将df分成两个数据帧(一个数值超过阈值,一个数值低于以下数据)。
试图循环显示不同颜色的列表似乎不起作用:
df.plot(kind = 'bar', ax=axes3, color = ['r', 'g', 'b'])
所有列都在这里显示为红色。
我已经在this question中尝试了解决方案,添加了一个列'颜色'区分“红色”和“红色”之间的值。和'蓝色'。
A % colors
--------------
a 1 red
b 10 red
c 50 blue
d 80 blue
我把它添加到我的代码中:
color = df.colors.map({'red': 'r', 'blue': 'b'})
仍然,我的所有列都是红色的。