ナンクル力学系

学んだ事を書き連ねていこう。

Gnuplot.py で頑張って pm3d map を使う方法

leave a comment »

Gnuplot.py に入っているオプションは,matrixを受け付けてくれないので ちょっとした(?)ハックが必要だった.かなり試行錯誤したけど.

ソース:

import Gnuplot
import numpy

gnp = Gnuplot.Gnuplot(debug=1)

def plot_mat(mat0):
    # 端の行と列がなくなってしまうので,ダミーを入れる
    (x,y) = mat0.shape
    mat1 = numpy.zeros((x+1, y+1))
    mat1[:x,:y] = mat0
    # splot に 'matrix' オプションを加えるためのhack
    # /usr/lib/python2.5/site-packages/Gnuplot/PlotItems.py を読んだ
    plot = Gnuplot.PlotItems.Data(mat1, using='($2):($1):($3)')
    if plot._option_sequence[0] != 'matrix':
        plot._option_sequence.insert(0,'matrix')
    plot._options['matrix'] = (None,"matrix")
    # plot
    gnp('set pm3d map corners2color c1')
    gnp('set xrange [*:*] reverse')
    gnp.splot(plot)
    gnp('unset pm3d')
    gnp('set xrange [*:*] noreverse')

plot_mat(
    numpy.array([[0, 0  , 0  , 0  , 1],
                 [0, 0.4, 0.1, 0.0, 0],
                 [0, 1.0, 0.6, 0.1, 0],
                 [0, 0.1, 1.0, 0.8, 0],
                 [0, 0  , 0  , 0  , 0]])
    )

実行結果

Advertisements

Written by tkf

April 18, 2009 at 10:48 pm

Posted in 研究日誌

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: