Python matplotlib每个N-bar都有不同的颜色

时间:2016-12-11 16:12:53

标签: python matplotlib colors

所以我创建了以下matplotlib diagramm。这就是它的外观: enter image description here

有没有办法在每隔5个酒吧后改变颜色?像1-5条有相同的颜色,6-10有相同的颜色,.... 似乎无法找到答案。 干杯

2 个答案:

答案 0 :(得分:2)

是的,有,而且很容易。请查看以下代码:

from matplot import pyplot as plt
bars = plt.bars(xrange(20), xrange(20))
for item in bars[::5]:
    item.set_color('r')
plt.show()

bars()方法返回一个对象列表,您可以使用set_color()方法设置颜色。然后取出列表并以5的步长迭代它。您可以通过传递起始索引来移动彩色条的位置,例如bar [2 :: 5]。

这给出了以下结果: enter image description here

编辑: 为了实现每5个条上颜色的变化,代码必须如下所示:

from matplotlib import pyplot as plt
colors = ['r']*5 + ['b']*5 + ['g']*5
barlist = plt.bar(xrange(15), xrange(15))
for item, color in zip(barlist, colors):
     item.set_color(color)
plt.show()

给出了:

enter image description here

答案 1 :(得分:2)

您可以通过向bar图表提供颜色列表来设置条形图的颜色。

import matplotlib.pyplot as plt
import numpy as np

#generate some data
x = range(24)
y = np.abs(np.random.normal(2, 1, 24))

#generate color list. 
color = ["orange"]*5 + ["purple"]*5 + ["darkturquoise"]*5+ ["firebrick"]*5 + ["limegreen"]*4 
plt.bar(x,y, color = color, align="center")   

plt.xlim((-1,24))
plt.show()

enter image description here