我正在尝试在 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()
然后您可以使用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] 之间的浮点数。