ねるねるねるねをねらずにくうぜ

C とかC++(予定)とかpythonとかgnuplotとかmatlabとかmathematicaとか書く予定ですが、最終的にはねるねるねるねをねらずに食うことを目標にしているブログです

matplotlibでパラメーターごとにプロットの色を変える方法

matplotlibでパラメーターごとにプロットしている時に、色をいちいち指定するのが面倒。例えばこんなの↓

 

f:id:V0S-FRMK:20140917211057j:plain

 

デフォで普通にプロットしても基本的には色は変えてくれる。

けど、パラメーターが増えてくると、もっと細かく色指定したくなる時がある。

具体的には、あるパラメーターを振った時、パラメーターが増加するに連れてグラデーションで色が変わっていく状況はよくある。

今回はその方法について。

ここ↓を参考(丸パクリ)にしました。


Matplotlibで色を連続的に選択 - bettamodokiのメモ

 

f:id:V0S-FRMK:20140917211505j:plain

 

ポイントは色を指定するところのcm.hsv

cmは正確には、matplotlib.cmで、hsvはカラーパレットの種類を表す。

上のリンクでも言ってるけど、spectralなカラーパレットなら、

autumn, bone, cool, copper, flag, gray, hot, hsv, jet, pink, prism, spring, summer, winter, spectral

がある。色々試してみよう。

その他のカラーパレットについては、

color example code: colormaps_reference.py — Matplotlib 1.4.0 documentation

を参照。sequentialなパレットは系統的なパラメーターの変化をプロットするときに使えそう。sequentialだとこんな感じ

f:id:V0S-FRMK:20140917212239j:plain

cm.hsvのカッコの中は、[0:1]の実数が入ることに注意。[0:255]の整数ではない。

だから、

float(i)/10.

のところを調整して上げれば、グラデーションの調整ができる

基本的には、for文の中で動く変数が最小の時に0,最大の時に1になるようにすればいい感じのグラデーションになる。上の例はそうしている。

 

 

この方法は基本的には色が指定できるプロットならどれでもできる。はず。