0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gnuplotを利用してcsvからグラフ画像をささっと作る

Last updated at Posted at 2024-11-17

実験系学者、学生の強い味方gnuplotの覚え書き。

python導入面倒だしcolab遅いから嫌だな~という人はぜひ検討を。

本編

  1. ~.pltファイルを作成。拡張子はtxtとかでもOK
  2. gnuplotに.pltファイルを読み込ませる
    • ターミナル上でgnuplot hogehoge.pltとか入力すると読み込める。
    • guiならFile->Openとかでいけるはず

解説なし版

set terminal pngcairo enhanced font "Times New Roman,18" size 800,600
set grid
set datafile separator ","

set xlabel "X-axis"
set ylabel "Y-axis"
set title "Title"
unset key

set output "output.png"

plot "input.csv"  skip 1 using 1:2 with line linecolor 0

解説

# hogehoge.plt

# pngと指定するとガビガビ画像になるのでpingcairoと指定して高画質にする。
# ほかの画像形式にしたい場合はpingcairoからjpegやepsとしておけばOK
# enhanced font "Times New Roman,18" はギリシャ文字まで含めてfontとfontsizeを設定してる
# 画像サイズ800x600
set terminal pngcairo enhanced font "Times New Roman,18" size 800,600 

# 補助線つける
set grid 

# csvは,で区切るので指定。
# 指定しないとdat形式(空白で区切るやつ)と勘違いしてエラー起こす
set datafile separator ","


set xlabel "X-axis" # x軸名
set ylabel "Y-axis" # y軸名
set title "Title"   # タイトル

# ファイル名を指定すると凡例にファイル名が表示されて厄介なので削除する
unset key

# 出力ファイル名。
# ここでepsやjpgにしても無視される
# 変えたいなら上にある terminal pngcairo の文章を弄ること
set output "output.png"

# 入力ファイル指定しプロット。
#一行目が各列の説明の場合skipで飛ばせる。2行3行となるなら1ではなく2や3にしよう。
# usingでどの列を使用するのか指定する。
# システムの都合で行末に,があった場合エラー起こすのであえてusing 1:2を入れている。
# 複数列ある場合は using 1:5 とかやれば指定できる。
# with line で線描画。ないと点描画する。データの並び順で線を繋ぐ
# linecolor 0 は黒色。ほかの色は本記事後述。
plot "input.csv"  skip 1 using 1:2 with line linecolor 0

対数表記、データの加工、ラベルの数式表記

# 両対数表記。片対数にしたい場合はlogscale xあるいはlogscale y
set logscale

# データの加工。
# それぞれの列の値を変更したいときに。
plot "input.csv"  skip 1 using ($1-25):($2*1e6) 

# ラベルにギリシャ文字や数式を使いたいとき
set xlabel "{/Symbol w}_c^2"
# 添え字が離れたくない場合
set xlabel "{/Symbol w}@_c^2"

線の太さ、形式、色を変えたい

次のページに詳しく記載されている
https://atatat.hatenablog.com/entry/2020/07/26/090000

gnuplotを導入するには

windowsユーザー

ソースフォージで公開されている
参考: gnuplot公式ページ

Ubuntu等

sudo apt install gnuplotでOK

メリット

  • win,mac,linuxなどなど対応の幅が広い
  • オープンソース
  • 数式表記対応
  • 軽い、速い
  • excelからの脱却
  • eps方式も対応。latexユーザーもニッコリ

デメリット

  • ドキュメントが少ない
  • vscode等エディタでシンタックス対応してない(文字に色がつかないのでわかりにくい)
  • 記法が何通りかあって記事ごとに違うものが紹介されていて混乱する
  • 記事によってはlinuxじゃないとできないような手法も紹介されていてつらい

さいごに

gnuplotは数式を出力させたり、線を複数本書き込めたり、なんならフィッティングまで対応していていろいろできるいいやつなんですがいかんせん書き方を忘れる......

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?