matplotlibで自由自在にsubplotする。
MATLABではsubplot(1.5,1,1)とかやるとfigureの2/3を占めるようなsubplotを作ることができて、便利だったんだけどmatplotlibでどうやるのかいつも気になっていたのですが、今日とうとうやり方を発見。Scipy lecture notesのsubplotの項 に、あった。
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])

できました!バーグラフのY軸がめり込んでいるのはpylabならtight_layout()で一発でレイアウトが自動で最適化されます。
それにしてもこのScipy lecture notesは他にも非常に充実していて、あとできっちり読んだほうが良さそう。色々と評判がよいscikit-learnまでカバーしてあるのが嬉しい。
« ブラウザーのタブに置いて置けるタイマー timer-tab.com | トップページ | 駆け込みでWindows8買ってみた。 »
「学問・資格」カテゴリの記事
- ウイルスを殺すのは簡単。人に無害でやるのが難しいの!! 二酸化塩素「こう?えい!」(2020.03.11)
- 老化はエピジェネティクスな影響が積り、スプライシングに影響を与えるのかも(2017.11.20)
- シネッセンス細胞がアツい。不老不死とハゲの治療が同時に可能か?(2017.11.18)
- 古めの論文でテキスト選択がおかしい時の対処法(2017.09.08)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
« ブラウザーのタブに置いて置けるタイマー timer-tab.com | トップページ | 駆け込みでWindows8買ってみた。 »
コメント