« ブラウザーのタブに置いて置けるタイマー 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買ってみた。 »

しろののツイッタータイムライン

  • ツイッターは5つ目も凍結されました。6つ目での復活も不可能。なのでnoteに注力しています。

    と思ったら、イーロン・マスクの買収が公になってアカウントが復活できました。ありがとうマスク。

    トランプ関連記事の一覧リスト

オススメたち

2024年12月
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        

はてブ

無料ブログはココログ