« ブラウザーのタブに置いて置けるタイマー 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」カテゴリの記事

コメント

コメントを書く

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

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

トラックバック


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

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

やっつけタイムライン

オススメたち

  • Librem One

    LibremOneでプライバシーを取り戻せ!VPN、eメール、チャット、ソーシャルメディア詰め合わせサービス

    follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。RSSを表示

    超安定なLinux Mintを応援中



    超かっこいいジャズピアノ岩瀬章光

    Jenny Mayhem超おすすめ

    今読んでいる

2019年9月
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          

はてブ

無料ブログはココログ