LoginSignup
2
3

More than 3 years have passed since last update.

ファイル指定で、単純にグラフをかく

Last updated at Posted at 2017-02-10

こっちの続き。

sin とか cos とか、どーでもいいから、取り敢えず単純に外部データをプロットさせたいんだよ!

ついでに。

埋め込みなんて、トロい。引数で指定出来る様にしろよ!

ってメモ。色んなグラフツールで。

使うのは、あっちでも使った、rand.txt を再度。

$ perl -le 'print rand (10) for 0 .. 99' > rand.txt

Python

GRAPH.py
import sys
import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv(sys.argv[1], header=None)
data.plot()
plt.savefig(sys.argv[2])
$ python GRAPH.py rand.txt graph.png

import syssys.argv 使うだけ。

R

GRAPH.r
png(commandArgs(trailingOnly=TRUE)[2])
data = read.table(commandArgs(trailingOnly=TRUE)[1])
plot(data$V1, type="l")
$ Rscript ./GRAPH.r rand.txt graph2.png

yV1(第一列)の時に限り、暗黙的に行番号をxとして扱うっぽい。

gnuplot

2019/01/19 更新

こっちの方が直感的。
ワンライナーで使うから、-e のメモも残すけど1

GRAPH.plt
#!/usr/bin/env gnuplot
set term png
set output ARG2
plot ARG1  u ($0):($1) notitle w l
$ gnuplot -c GRAPH.plt rand.txt graph3.png 

$0 が"インデクス"を示す。

旧メモ

GRAPH.plt
#!/usr/bin/env gnuplot
set term png
set output o
plot f  u ($0):($1) notitle w l
$ gnuplot -e 'f="rand.txt";o="graph3.png"'  GRAPH.plt

psxy (GMT)

psxy だけは、 x 省略する方法が考え付かない、、、

$ perl -lne 'print join " ", $., $_' rand.txt | gmt psxy -R0/100/0/10 -Jx0.1/1 > graph4.eps
$ gmt psconvert -P graph4.eps
  • -R で、 x を 0~100, y を 0~10 まで描画
  • -Jx で、 x を 0.1 倍、y を等倍

でグラフを書く。

spark

ついでに spark

$ cat rand.txt| spark

spark.png


  1. -e, -cが併用出来るのが一番理想なんだけど、、、 

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3