FC2ブログ
研究で必要な雑多な知識をごった煮で
プロフィール

termoshtt

Author:termoshtt
大学院生
専攻:流体物理学
Editor: vim
Language: C++,python

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- --:-- スポンサー広告 TB(-) CM(-)
gnuplotについてTips:凡例を分割する方法について。

gnuplotの凡例というのは普通にgnuplotでグラフを出力したとき、右上にでる
"hoge.dat" -
 x*sin(x) -
みたいなあれである。
これはgnuplot中ではkeyというキーワードで管理する。例えば左上に出したかったら
set key left
箱で囲みたかったら
set key box
などである。

ここまでわかれば、あとはhelp keyとすれば大概の情報は出てきそうなものだが、本題のこの凡例を分割する方法が見当たらない。なので場当たり的ではあるが、対処法を考えたので載せておく。

例によって大したことはないが、アイディアはmultiplotで複数のグラフを重ねる、というものである。
set xrange [-5:5]
set yrange [-5:5]
set multiplot
multiplot> plot x
multiplot> set key left
multiplot> plot x*x
とすればだいたいわかってもらえるだろう。こんな感じ
multiplot.png

rangeを設定しないと面白いことになるので注意が必要である。あと、なんか周囲の枠が太くなっているような気がする。

なんかもっといい方法があるのかな?
2010/12/22 00:11 gnuplot TB(0) CM(0)
前回に引き続きNumpyについて。
以下では
A = mat([[1,2,3],[4,5,6],[7,8,9]])
v = mat([1,2,3]).T
とする。

行列要素へのアクセス:
ここは注意が必要。C++のublas::matrix<double>のように
A[i][j]でのアクセスができない。これはちょっと演算子のかたちが変わって、
A[i,j]でアクセスしないといけない。
同じクラスなので当たり前だが、v[i]では要素は取り出せない。

なお、AやvにはメンパにA.A,v.Aが存在し、これはarrayのインスタンスだった。
このメンバに対してはA.A[i][j]のようなアクセスができるので、
array型を想定した関数に投げるときはこれを使うと便利。


2010/12/16 02:16 Programming TB(0) CM(0)
pythonの便利な数学ライブラリ、Numpy。
本家HP:http://numpy.scipy.org/

この中の行列の扱いにはまったのでメモ。
ipython -pylabで起動かもしくは
from numpy import * を想定。
numpyをimportして使うときは適宜読み替えること。

生成法:
A = mat([[1,2,3],[4,5,6],[7,8,9]])
のようにつくる。引数はリストでもタプルでも可。

ベクトルの生成:
v = mat([1,2,3])
で横ベクトルができる。縦ベクトルは
v = mat([[1],[2],[3]])
とすればできるが、
v = mat([1,2,3]).T
のように転置を取るほうが書きやすい。

ベクトルをこのように使うと、行列とベクトルの掛け算
A = mat([[1,2,3],[4,5,6],[7,8,9]])
v = mat([1,2,3]).T
A*v
とかける。
2010/12/16 02:14 Programming TB(0) CM(0)
ちょっとしたTipsをひとつ。

普段sshを使うとき、-Xオプションは付けないで起動することが多い。エディタは基本的にvimをつかうので端末のみで不便がないから、特に試したこともなかった。
しかし問題が発生。計算結果をプロットしようとし、gnuplotを起動してプロットを使用とするとエラーが。
Xを転送してないので当たり前か、と思いつつ解決法を模索したところ、gnuplotで出力結果をAAで出力できる、ということを思い出し、試してみた。ということでメモ。

大したことはなく、gnuplotで
set terminal dumb
とするだけ。出力結果はこんな感じ。
gnuplot_AA2.png
参考HP:MacWiki - gnuplot
2010/12/16 00:47 gnuplot TB(0) CM(0)
検索フォーム
ブロとも申請フォーム
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。