Gnuplotからmatplotlibへの平和な移行

人間は誰でも数値データを可視化したいことがあると思います。

gnuplotは以下のような構造のデータフォーマットを気軽にグラフ出力するソフトウェアです。

#! data.txt

x1    y1    z1
x2    y2    z2
. . .
xN    yN    zN
# gnuplotをターミナルで実行後以下を入力すると一列目のデータを横軸、二列目のデータを縦軸
# として出力
plot "data.txt" using 1:2
# 同、三次元プロット
splot "data.txt" using 1:2:3

最近これをマジパネェ遅ればせながらpythonのmatplotlibへ移行しつつあります。多分やれることが柔軟なんじゃないですか。知らんけど。

pythonはファイルから読み取るデータをまずchar型として処理するので、gnuplotでの処理を前提とした数値ファイルを読んでデータ自体に演算を施したい場合は一手間必要です。この一手間がめんどくさくてついgnuplotを使っちゃっていたのですが。

とりあえずpython側で以下の処理を噛ませるのが比較的手軽かなと思ったのでしばらくこれでやります。

filein=open("data.txt", "r")
lines = filein.readline()
lstrip = [li.strip() for li in lines]
line = [li.split() for li in lstrip]
x = [float(li[0]) for li in line]
y = [float(li[1]) for li in line]
z = [float(li[2]) for li in line]

pythonの綺麗な書き方に自信ニキの意見は常に求めております。

いいなと思ったら応援しよう!