2010-12-08 35 views
12

Matplotlibがグラフの線に対して独自の色を生成しているときに、どの色を循環させるかを変更することはできますか?私はピラブモジュールを使用しています。Matplotlibカラーパレット

from pylab import * 
import matplotlib.cm as cm 

x=[1,2,3,4] 
y=[5,6,7,8] 

fig1 = Figure() 

plot1 = fig1.add_subplot(311) 
plot1.plot(x,y) 

plot2 = fig1.add_subplot(312) 
plot2.plot(x,y) 

plot3 = fig1.add_subplot(313) 
plot3.plot(x,y) 

答えて

12

カラーマップから色が抽出されます。 one of the predefined colormaps、またはdefine your ownを使用できます。

残念ながら数字ごとに複数のカラーマップを使用する方法はありません、あなたは手動でそれをしなければならない。もちろん

import pylab as pl 
import matplotlib.cm as cm 

xval = pl.arange(0, 20, 0.2) 

pl.subplot(311) 
pl.plot(xval, pl.sin(xval), c=cm.summer(0)) 

pl.subplot(312) 
pl.plot(xval, pl.cos(xval), c=cm.spring(0)) 

pl.subplot(313) 
pl.plot(xval, pl.arctan(xval), xval, pl.fabs(xval)) 

pl.show() 

+0

から色を取得しますか?図、サブプロットなどに適用すればエラーになります...それは難解なライブラリモジュールですか? – thenickname

+0

Matplotlibは全く難解ではありませんが、Matplotlibはそれを常に使用します。何を試しましたか? カラーマップを適用する方法はたくさんあります: 'pyplot' /' pylab'モジュールの定義済みメソッドの使用、キーワード引数の使用、またはカラーマップオブジェクトの呼び出しによる色の手動抽出です。 – Philipp

+0

図形を設定してカラーマップの1つの色だけを引き出す方法はありますか? – thenickname

22

はい、。それは色の定義の多くの種類を受け入れるので。独自のカラーマップを定義するのは簡単です。ここで私はちょうどあなたが実際にプロットにカラーマップを適用するにはどうすればよいのカラーマップhot

import pylab as py 
import numpy as np 
import matplotlib.cm as cm 
a = np.arange(0,10) 

py.figure() 
for i in np.arange(10): 
    c = cm.hot(i/10.,1) 
    py.plot(a,i*a,color=c) 

py.show() 

alt text

+0

私は3つのサブプロットを含む図を持っています。 3つのサブプロットの1つにカラーマップを適用したい場合は、「c = cm.hot」の後に「a_plot.plot(x、y、color = c)」と言うことができます。 – thenickname

+0

カラーマップ全体を適用したい場合は、代わりに 'cmap' kwargを使うか、' py.hot() 'を使ってカラーマップを選択するだけです。 – Philipp

+0

@Philipp、それはうまくいくのですか?私はそれを 'plot'と一緒に使う方法を知らない。 – gerry

関連する問題