« ブラウザーのタブに置いて置けるタイマー timer-tab.com | トップページ | 駆け込みでWindows8買ってみた。 »

2013年1月18日 (金)

matplotlibで自由自在にsubplotする。

MATLABではsubplot(1.5,1,1)とかやるとfigureの2/3を占めるようなsubplotを作ることができて、便利だったんだけどmatplotlibでどうやるのかいつも気になっていたのですが、今日とうとうやり方を発見。Scipy lecture notessubplotの項 に、あった。
gridspecというのがあって、これでグリッドを作る。
import matplotlib.gridspec as gridspec
pl.figure(figsize=(6, 4))
G = gridspec.GridSpec(3, 3)
で、axisを指定するときに
axes_3 = pl.subplot(G[1:, -1])
のようにしてグリッドをnumpy arrayをスライスする感じで指定するらしい。非常にエレガントな方法。MATLABで小数点絡んだやり方は非常に混乱したのを覚えている。
横に長いプロットを2つに縦長を1つをpylabの例でやります。
from pylab import *

toy_data = np.random.rand(100)

G = gridspec.GridSpec(2,3)

subplot(G[0,:2])
plot(toy_data)

subplot(G[1,:2])
plot(toy_data ** 2, 'r')

subplot(G[:,2])
bar(0.6, np.mean(toy_data ** 2), facecolor='none')
xlim([0,2])

Plot

できました!バーグラフのY軸がめり込んでいるのはpylabならtight_layout()で一発でレイアウトが自動で最適化されます。
それにしてもこのScipy lecture notesは他にも非常に充実していて、あとできっちり読んだほうが良さそう。色々と評判がよいscikit-learnまでカバーしてあるのが嬉しい。

« ブラウザーのタブに置いて置けるタイマー timer-tab.com | トップページ | 駆け込みでWindows8買ってみた。 »

Python」カテゴリの記事

学問・資格」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/48809936

この記事へのトラックバック一覧です: matplotlibで自由自在にsubplotする。:

« ブラウザーのタブに置いて置けるタイマー timer-tab.com | トップページ | 駆け込みでWindows8買ってみた。 »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。現在Feedlyに122人登録頂いています。多謝!RSSを表示

    ブログランキング用 にほんブログ村 IT技術ブログ Pythonへ ブログランキングならblogram






    Jenny Mayhem
2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

IT技術注目記事

無料ブログはココログ