2016-12-11 5 views
1

すべてのN番目のバーに異なる色をmatplotlibのだから私は、次のmatplotlibのdiagramm.Thisを作成し、それは気圧に見えるものです: enter image description herePythonは

すべての第五バーの後に色を変更する方法はありますか?バー1-5と同じ色ですが、6-10は同じ色です.... 答えが見つからないようです。 乾杯

答えて

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

あなたはSET_COLOR()メソッドで色を設定できるオブジェクトのリストを返します。その後、リスト幅を5段階の幅で繰り返します。棒グラフの位置をシフトするには、開始インデックス(bar [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() 

与える:

は、すべての第五バーの色が変化し、コードは次のように見えるように持っていることを実現するために、

enter image description here

+0

感謝。私が実際に探していたのは、最初の5つのバーに同じ色を、2番目の5つのバーに同じ色を与える方法です。 – dummker

+1

ありがとうございます!私を助けてくれました! – dummker

+0

これらの標準色の代わりに仮装色を得る機会はありますか? – 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つのバーに同じ色を、2番目の5つのバーに同じ色を与える方法です。 .. – dummker

+0

それは質問から明らかではなかった。しかし、それは同じように簡単です。私はそれに応じて私の答えを編集しました。 – ImportanceOfBeingErnest

+0

ありがとうございました!心から感謝する! – dummker