如何根据python中值的大小生成颜色?

问题描述

然后您可以使用matplotlib中的颜色图(额外文档

在此示例bar_colors中,创建的列表具有 0 到 100 之间的比例,但您可以根据需要选择比例。

import matplotlib.pyplot as plt
import matplotlib.colors
fig, ax = plt.subplots()

names= ['A', 'B', 'C', 'D', 'E']
counts = [10, 30, 40, 55, 100]

cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["red","orange", "green"])

bar_colors = [cmap(c/100) for c in counts]

ax.bar(names, counts,  color=bar_colors)
ax.set_ylabel('Frequency')
ax.set_title('Names')
plt.show()

请注意,您可以根据cmap需要使用颜色列表来实例化。

另外,请确保在调用cmap()您可以使用 [0,1] 之间的浮点数。

解决方法

我正在尝试在 python 中制作一个条形图,以便根据该值的大小设置每个条形的颜色。例如下面的列表是我们的号码:

List = [2,10,18,50,100,... 500]

在这种情况下,2 应该有最浅的颜色,而 500 应该有最深的颜色值。下面来自excel的图片显示了我的意思:

在此处输入图像描述

我感谢对我有帮助的答案。谢谢你。

更新:

import matplotlib.pyplot as plt

fig,ax = plt.subplots()

names= ['A','B','C','D']
counts = [30,40,55,100]
bar_colors = ['blue']

ax.bar(names,counts,color=bar_colors)
ax.set_ylabel('Frequency')
ax.set_title('Names')
plt.show()