2016-12-11 1 views
1

그래서 나는 다음하기 matplotlib의 diagramm.This을 만들어 줄 그것을 기압 모습입니다 N 번째 : enter image description here파이썬은 다른 색상을하기 matplotlib 모든

모든 5 줄 후에 색상을 변경할 수있는 방법이 있습니까? 막대 1-5처럼 같은 색을, 6-10 같은 색을 가지고 .... 대답을 찾을 수 없습니다. 건배

답변

2

예, 있습니다. 매우 쉽습니다. 다음 코드를보고 : 방법을 사용하여 set_color() 메서드를 사용하여 색상을 설정할 수있는 개체의 목록을 반환()

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

막대를. 그런 다음 목록을 가져 와서 단계 너비 5로 반복합니다. bars [2 :: 5]와 같이 시작 색인을 전달하여 색상 막대의 위치를 ​​이동할 수 있습니다.

는 다음과 같은 결과를 제공합니다 enter image description here

편집 :

 
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() 

주는 :

모든 5 줄의 색상 변경, 코드는 다음과 같이해야한다는 것을 달성하기 위해

enter image description here

+0

감사합니다. 내가 실제로 찾고 있던 것은 첫 번째 5 개의 막대에 같은 색을, 두 번째 5 개의 막대에 같은 색을주는 방법입니다. ... 죄송합니다! – dummker

+1

고마워요! 많이 도와 줬어! – dummker

+0

그 표준 색상 대신에 의복 색상을 얻을 기회가 있습니까? – dummker

2

막대의 색을 다음과 같이 설정할 수 있습니다. plot of 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