2009年6月10日

matplotlibをMacにインストール2 (詳細)


Mac OS X 10.5 Leopard と 10.4 Tiger にインストールした

ソースからインストールした
libpng, freetype, (jpeg-6b) → ./configure & make & sudo make install
(PIL), numpy, ipython, matplotlib → python setup.py build & sudo python setup.py install

    注記
  • zlib : OS X には version-1.2.3 が入っているのでインストールする必要なし; 下記
  • PIL(Imaging) : 必要ではないけど時々勧められるのでついでにインストールした
  • jpeg-6b : PIL のためにだけ必要
  • ipython : 必須ではないがいれてみた
  • readline : 既存の履歴機能で当面十分なのでまだ入れてない; 下記

zlib

OS Xには下記のようにfix版が入っているので改めてインストールする必要はない ( Googleで検索しないとみつからなかった。Appleのサイトでライブラリのアップデート状況を個別に調べる方法ってあるの ? )
Security Update 2005-007
Mac OS X v10.4.2, Mac OS X Server v10.4.2
http://support.apple.com/kb/TA23465?viewlocale=ja_JP
15 8月, 2005
説明:不良圧縮データストリームを綿密に作成することにより、アタッカーは zlib を使用するアプリケーション内のデータストラクチャを上書きし、サービス拒否を引き起こしたり、任意のコードを実行することが可能です。このアップデートでは zlib をバージョン 1.2.3 にアップデートすることでこの問題を解決しました。

python

10.4 Tiger

デフォルトは下記
$ /usr/bin/python
Python 2.3.5 (#1, Jan 12 2009, 14:13:25) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363) (+4864187)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/System/Library/Frameworks/Python.framework/Versions/2.3'
>>> 

2.4以降が必要なので MacPython をインストールした
$ python
Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/Library/Frameworks/Python.framework/Versions/2.5'
>>> 

10.5 Leopard

デフォルトは 2.5.1 なのでそのまま使う
対話シェルで日本語入力出来ないなどの問題があるが別途readlineをインストール&リンクすれば解消できるらしい
readlineについては当面放置、後日別記

libpng-1.2.37

上記zlibが必要
作業ディレクトリのパスに空白が含まれていると make install できないので注意

freetype-2.1.10

特に問題なし

jpeg-6b

PILのためにインストールした
/usr/local/man/man1 へのパスをあらかじめ作成しておかないと make install できないので注意
./configure 
make
sudo mkdir /usr/local/man
sudo mkdir /usr/local/man/man1
sudo chown -R root:wheel /usr/local/man
sudo make install

Imaging-1.1.5 (PIL)

特に問題なし

numpy-1.3.0

makeに一番時間がかかる、MacBook(2GHz, HDD換装済, Tiger)で3-4分
Mac OS X 10.5 Leopardではシステムに入っている古いnumpyを無効化しなければならない : すでに別記
"don't know how to compile Fortran code on platform 'posix'" という警告(?)がでるがエラーにはならないので無視した

ipython-0.9.1

別途readlineまたは互換ライブラリが必要。Mac OS X (10.4 & 10.5)にも添付されている互換ライブラリ libedit で構わなければ単にmakeするだけ(?)。libeditで十分?? : 要調査, readlineとlibeditについては後日別記

matplotlib-0.98.5.3

特に問題なし

2009年6月9日

Bloggerテンプレートへの修正

ベーステンプレート = Snapshot: Madder
    変更点
  • 日本語フォントを指定
  • リンク要素の視認性を改善
  • <PRE>要素を定義
  • titleのフォントを手直し、lowercase指定を除去
  • 大きすぎるサイドバーを修正、全体の幅を少し大きめに

変更部分抜粋

< Variable name="bodyfont" description="Text Font"
        type="font"
        default="normal normal 100% Helvetica, Arial, sans-serif" 
        value="normal normal 96%  Meiryo, 'メイリオ', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', MS Pゴシック', Helvetica, Arial, sans-serif "> /* MARK Japanese font-style fix */

 /* a要素はすべてコメントアウトして変更*/
a { text-decoration: underline; }
a:link { color: #003366; }
a:visited { color: #003366; }
a:hover { color: #c30; }
a:active { color: #c30; } /* MARK same as nararad */

pre { 
  color: #00008b;
  font-family: "lucida typewriter", lucidatypewriter, monospace;
  font-size: 90%; 
  margin-left: 24px;
} /* MARK same as python document */

.title {
  font-family: 'Lucida Calligraphy', Georgia, monospace;
} /* MARK */
.description {
  font-family:  Georgia, monospace;
} /* MARK */

h1 {
  margin: 0;
  color: $pagetitlecolor;
  font-size: 1.5em;
  /* text-transform: lowercase; */ /* MARK */
}

/* 以下サイズ変更部分のみ */
#outer-wrapper {
  width: 800px; /* MARK 700 */
  margin: 0 auto; 
  text-align: $startSide;
  font: $bodyfont;
  background: #fff url(http://www.blogblog.com/snapshot/bg-body_$startSide.gif) $startSide top repeat-y;
}
.descriptionwrapper {
  background: #fff url(http://www.blogblog.com/snapshot/bg-sidebar.gif) 1px 0 no-repeat;
  width: 180px; /* MARK 264 */
  padding-top: 0;
  padding-$endSide: 0;
  padding-bottom: 0;
  padding-$startSide: 8px;
  margin-top: 1px;
  margin-$endSide: 0;
  margin-bottom: 2px;
  margin-$startSide: 0;
  position: absolute;
  bottom: 0px;
  $endSide: 0px;
}
#main-wrapper {
 line-height: 1.4;
 float: $startSide;
 padding: 10px 12px;
 border-top: solid 1px #fff;
 width: 612px; /* MARK 428  , margin gap=8 :*/
 word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
 overflow: hidden;     /* fix for long non-text content breaking IE sidebar float */
 /* Tantek hack - http://www.tantek.com/CSS/Examples/boxmodelhack.html */
 voice-family: "\"}\""; 
 voice-family: inherit;
 width: 588px; /* MARK 404  , margin gap=32 :*/
}
#sidebar {
  float:$endSide;
  border-top: solid 1px #fff;
  padding-top: 4px;
  padding-$endSide: 0;
  padding-bottom: 0;
  padding-$startSide: 7px;
  background: #fff;
  width: 180px; /* MARK 264 */
  word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
  overflow: hidden;     /* fix for long non-text content breaking IE sidebar float */
}

2009年6月8日

numpy リンク メモ


numpy覚え書き

ここで拾ったリンク

MATLABユーザーのためのnumpy置き換え表


ここで拾ったリンク

Scipy Superpack
This shell script will install recent SVN builds of Numpy (1.4) and Scipy (0.8), as well as Matplotlib (0.98), iPython and PyMC (2.0) for OS X 10.5 (Leopard) on Intel Macintosh.

Bloggerダサ


Jimdoがとても使いにくかったのでBloggerに引っ越してきたけど
記事を書くとき勝手に変なタグやフォント指定が突っ込まれて
ブログデザインを保ちたい身としては
結構ストレス (; ;)

せめてブログ人くらいになってくれるといいのだけど…

でも
無料で
それなりに簡単にレイアウトを変える自由があるので
しばらく使ってみるつもり




追記: うわ。改行変換設定外したら既存の記事まで影響した。ひで〜

numpyをMacにインストールしてハマル


matplotlibのためにnumpy をインストールした

Leopardではpythonサーチパスの上位に古いnumpy 1.0.1がインストールされているので必要な(新しい)numpyが邪魔されてしまう > どうかしてるぞ... Apple
まずこんなふうに確認
>>> import numpy
>>> numpy.__version__
'1.0.1'
>>> numpy

numpy-1.3.0-py2.5-macosx10.5.dmg はインストールできないので捨て(なぜ?)
numpy-1.3.0.tar.gz からコンパイル Fortranコードをコンパイルできないというエラーがでているが無視(してよいのかな??)
python setup.py build
sudo python setup.py install
新しいnumpyは/Library/Python/2.5/site-packages/ 以下にインストールされる
ここでpythonのサーチパスを調べる : 参考 (本家ドキュメント) なんかデフォルトでないものも入ってるみたいだけどそれは無視して
>>> import sys
>>> for x in sys.path:
...     print x
... 

/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload
/Library/Python/2.5/site-packages
/Library/Python/2.5/site-packages/PIL
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC
最後にLeopardに付属している邪魔なnumpyをリネームする
cd /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/
sudo mv numpy numpy_bad
確認のために対話シェルを再起動してnumpyのバージョンをみる
$ python
Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy

>>> numpy.__version__
'1.3.0'
>>> 
検索しても同じことではまっている人があまりいないのは Mac OS X付属のPythonを使っている人が少ないってことなのかなぁ...? ( 同じ例はこんなところ: SciPyの件のところ とか )

matplotlibをMacにインストール1 (サマリ)


Mac OS X 10.4 Tiger と 10.5 Leopardにインストールしてみる (サマリ)
→参考:英文(本家)

・必須 python 2.4以降、3.x不可、MacではどのPythonを使うか注意

・必須 numpy 1.1 以降

・推奨 ipython MATLABのように操作するためのインタラクティブシェル

・必須 libpng 1.1 (or later) pngファイルの入出力に使われる
    zlib 1.2.3 以降 libpngに必要、セキュリティ問題のため1.2.3以降を推奨

・必須 freetype 1.4以降 TrueTypeフォントの利用で使われる

・本体 matplotlib-0.98.5 December 11, 2008
    python setup.py で。


注意
readlineをインストールしないと、Mac OS X付属のpythonと同じ不具合がipythonにも生じる(らしい)ので、コメントの方法でreadlineを入れることを推奨。


その他参考
統合パッケージを使う方法
- The Enthought Python Distribution (EPD) : Windows, OS X or Redhat. ; 有料
- Python (x, y) ; Windowsのみ

matplotlibの日本語関連サイト


覚え書き:めぼしいサイトをピックアップしてみた

100: 簡単なサンプルと少し細かい説明
キャプション 目盛り 色 式と取得値の合成

良いもの。悪いもの。: 簡単なサンプルと説明
3Dプロット、多項式フィッティング、キャプションと線種 など

ぐうたらの部屋 数学・物理部: 見本付きサンプルコード集 解説なし
2Dグラフ 3Dグラフ ○をプロットする 円グラフ(パイチャート) 円弧
多系列棒グラフ(誤差範囲付き) 色指定 カーソル位置読み取り 線種指定
塗りつぶし 1軸共通グラフ併記 ヒストグラムと補間 ローソク足 
二次元マップと合成 数式キャプション 対数グラフと目盛り ベクトル場
散布図 1&2次元スペクトル表示 残渣 表 1軸共通合成 など


追記
"Life, don’t talk to me about life." : ガウシアンフィッティング(長文)

matplotlibをはじめる


matplotlib
pythonの計算結果をグラフやマップに出力するライブラリ

・覚えることが少ない
・検索すると「いま」使っている人が結構いるようだ→日本語の情報がある
・多彩な表現方法ができる http://matplotlib.sourceforge.net/gallery.html
・ドキュメントがわかりやすい HTML(英文), PDF(英文)

背景: Excelでグラフを描くこともありますが、あまりExcelには詳しくないのでmatplotlibを試してみることにしました。有名なMATLABは高価なので使ったことがありません。SciPy, Octaveは取っつきにくいので試そうとしたけどやめました。