2016-12-11 320 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

相關問題