« LibreOffice 3.3.2を英語版Windows 7にインストールする | トップページ | PyFFmpeg 2.1beta win32使い方メモ。 »

2011年4月23日 (土)

Matlabの代わりにDreampie上でpylab使い始め。覚書。

Pythonも半年くらい触っていると大分勝手が分かってきたし、wxでいくつかまともなGUIが付いたツールも作ったし、ますますMatlab使わなくなってきた。が、最終的なFigureを、統計検定してからプレゼン用とか論文用にするクオリティでつくろうとするとやっぱりMATLABの方が速いので、結局最後はMATLAB。scipyのioモジュールをつかってpythonで計算した結果をmatファイルにして書き出してしまうとやりとりが楽。

しかし、問題は家で仕事するとライセンスの問題で、MATLABは敷居が高い。オクターブでいいかぁ。と使い始めるとなにかとWin32では不安定。とくにGNUplotが相性悪すぎるようで、変なところで苦労する。

その点、統計検定がまだ弱いような気がするので踏み出さずに来ていたが、pylabを使ってみたらmatplotlibは非常に安定していて快適だった。もうOctave使うのは諦めてpylabを極める方向で行く気持ちにだいぶ傾いた。(追記:Scipyを調べてみたら検定もかなり充実している。ますますoctaveとかscilabとかに行く気がなくなった。)

基本的にはiPythonで使うことが多いと思われるmatplotlibあるいはpylab環境ですが、Dreampieもmatplotlibがimportされたときにinteractive modeにスイッチしてくれる機能があるので、iPythonの代わりになる。個人的にはどうもiPythonがあんまり好きになれなかったため普段からインタラクティブにPythonをいじるときはDreampieを使っている。

というわけで、MATLABの代わりに使うときのコツを自分の覚書ついでで、いつものように記事にするのでした。

まずは、ネームスペースがはっきりするような例。

>>> import numpy as np
>>> x = np.arange(100)
>>> import pylab
>>> pylab.plot(x, x**2)

Dreampie上でpylabをインポートしているので勝手にインタラクティブモードになっているはずで、すでにこれでプロットが出ているはず。つまりshow()はいらない。

x**2で二乗しています。x power to the 3rd ならx**3になる。

しかしプログラムにするならどのモジュール使っているかわかるように書いた方が、読みやすいと思うけど、MATLABでプロットしながらデータを処理していくような使い方の場合は

from pylab import *

としてしまった方が便利。これでnumpyとmatplotlibが同じレベルに掘り出されて混在したネームスペース環境になり、pylab.plotとしなくてもplotでOKだし、numpy.arange(100)がarange(100)でOKになり、MATLABに近い感じになる。つまりipythonで-pylabオプション付けて起動したときと同じ環境になっているはず。

plotに限らずhistとかいろいろMATLABのように使えるので
http://matplotlib.sourceforge.net/users/shell.html
を参考に他のつかえる関数を探す。

figureを消したいときは
close()

hold()
でhold on offが切り替わる。

hold(True) またはhold(1)
でhold on

hold(False) またはhold(0)
でhold off

mat-fileの読み込みはscipyが必要。
http://docs.scipy.org/doc/scipy/reference/tutorial/io.html

import scipy.io as sio
mat_contents = sio.loadmat(r'path2matfile')

mat_contents にはpythonの辞書形式で入るので、変数の名前がaならば

mat_contents['a']
のようにして参照する。


image, imagescの代わりはimshow

data = random((100,100))
imshow(data)
とするとJetのカラーマップで表示される。

imshow(data, cmap=cm.gray)
とするとグレースケールになり
imshow(data, cmap=cm.jet)
で戻せる。

追記:Pyscripter上でPylabを使ってみたがこれがまた素晴らしかった。GeanyよりもエディタとしてもPyscripterはPythonに特化している分、気が利いていて良い感じ。Geany+Dreampieから乗り換え中。

« LibreOffice 3.3.2を英語版Windows 7にインストールする | トップページ | PyFFmpeg 2.1beta win32使い方メモ。 »

Python」カテゴリの記事

パソコン・インターネット」カテゴリの記事

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

コメント

コメントを書く

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

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

トラックバック

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

この記事へのトラックバック一覧です: Matlabの代わりにDreampie上でpylab使い始め。覚書。:

« LibreOffice 3.3.2を英語版Windows 7にインストールする | トップページ | PyFFmpeg 2.1beta win32使い方メモ。 »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

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

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






    Jenny Mayhem
2017年11月
      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    

IT技術注目記事

無料ブログはココログ