python - 使用特定值改变条形图中每个条形的颜色

标签 python matplotlib

我有一个如下的条形图:http://matplotlib.org/examples/api/barchart_demo.html

在那种情况下,我们假设 G1-G5 组中的每一组代表每组中男性在某项考试中获得的平均分数以及每组中女性在同一考试中获得的平均分数。

现在假设我有一些与每个组相关的其他特征(平均喜爱度(在 1-5 之间 float ))。

Ex: Avg Likability of men in G1 - 1.33
                   Avg Likability of women in G1 - 4.6
                   Avg Likability of men in G2- 5.0
                   .... etc...

让我们假设 1 - 不讨人喜欢,5 - 非常讨人喜欢

我想知道如何通过更改颜色示例的阴影将这种讨人喜欢的功能融入每个条形图: 由于上例中第 1 组的男性有 1.33,他们的图表将比 G2 的男性更浅的红色阴影,因为 G2 的男性有 5.0 的亲和性,他们的条形图将是图中最深的红色阴影,并且女性也一样。

我希望我已经说清楚了。如果有人能指出 matplotlib 中可以实现此目的的资源,我将不胜感激,因为我对这个包还很陌生。

提前致谢。

最佳答案

bar 将颜色列表作为参数 (docs) .只需传入您想要的颜色即可。

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import Normalize
from numpy.random import rand

fig, ax = plt.subplots(1, 1)
# get a color map
my_cmap = cm.get_cmap('jet')
# get normalize function (takes data in range [vmin, vmax] -> [0, 1])
my_norm = Normalize(vmin=0, vmax=5)
# some boring fake data
my_data = 5*rand(5)
ax.bar(range(5), rand(5), color=my_cmap(my_norm(my_data)))

plt.show()

enter image description here

关于python - 使用特定值改变条形图中每个条形的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18903750/

相关文章:

python - 将一个图中不同数据帧的不同列绘制为散点图

python - 如何在显示绘图/图形的同时继续执行 python 脚本?

python - 如何设置matplotlib的latex路径

python - 在 Matplotlib 中定义 GridSpec 的宽度/高度

python - 有没有办法将reportlib中的PDF文件与python3合并?

python - 从曲率上下阈值检测点/特征 - 曲线四边形形状检测算法

python - 找不到页面帐户/注册 django allauth

python - 如何向 Qthread 发送参数

python - Pandas 按一天中的小时分组到字典

python - 如何在Y轴不同高度上绘制列表列表?