2016-12-11 147 views

回答

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为步长迭代它。您可以通过传递开始索引来移动彩色条的位置,例如bars [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

+0

谢谢您的回答。我实际上正在寻找的是一种方法,让前5个酒吧相同的颜色,第二个5酒吧相同的颜色,....对不起! – dummker

+1

谢谢!帮助了我很多! – dummker

+0

任何机会得到costum颜色而不是那些标准颜色? – dummker

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

+0

对不起,我实际上正在寻找一种方法来给前5个酒吧相同的颜色,第二个5酒吧相同的颜色,.. .. .. – dummker

+0

这个问题并不清楚。但同样简单。我相应地编辑了我的答案。 – ImportanceOfBeingErnest

+0

非常感谢你的努力!真的很感激它! – dummker

相关问题