在matplotlib中具有N种不同颜色阴影的条形图

时间:2014-08-25 16:00:01

标签: python matplotlib colors

我有一个使用python matplotlib.pyplot.bar构建的N个条形图,我想在阴影后给每个条形图一个不同的颜色:

例如,如果N = 4,我想:黄色,橙色,浅红色,深红色。我想保持黄红色调。

但我希望阴影以N为参数。

你能帮我吗?

1 个答案:

答案 0 :(得分:2)

我建议您使用颜色贴图来完成您想要的任务。有很多彩色地图可供选择,您可以选择自己喜欢的颜色,也可以自己制作。

import matplotlib.pyplot as plt
import numpy as np

# number of bars
N = 20

# plot a random bar graph
fig = plt.figure()
ax = fig.add_subplot(111)
bars = ax.bar(np.arange(N), np.random.random(N))

# change the colors according to the color map 'jet'
for i, b in enumerate(bars):
    b.set_color(plt.cm.jet(1. * i / (N - 1)))

这会创建:

enter image description here

所以,有两点:

  • 绘制条形图时,bar会返回一组条形
  • 通过为所需的颜色贴图提供0..1之间的参数(此处最左边为0且最右边为1,但如果需要,您可以仅选择颜色贴图的一小部分)来更改每个柱的颜色

定义自己的色彩图也很容易。或者,如果您只想在两种颜色之间进行线性过渡,则可以完全跳过使用颜色图并进行自己的计算。 set_color期望接收颜色名称或可迭代的3(RGB)或4(RGBA)元素。