gnuplotの使い方
インストール方法
Ubuntuでは以下のコマンドでgnuplotをインストールします.
sudo apt install gnuplot
macOSでHomebrewをインストールしてあれば,以下のコマンドでgnuplotをインストールします.
brew install gnuplot
使い方
対話型で起動する場合は以下のコマンドを使います.
gnuplot
予め用意したスクリプトファイルを実行する場合は,以下のコマンドを使います. ここでは sample.gp を読み込ませています.
gnuplot < sample.gp
cat sample.gp | gnuplot
チートシート
入力データのファイル形式
デフォルトでは以下のようなスペース区切りのデータを扱える.
1 3.2
2 4.5
3 9.0
TSVファイルを読み込む場合に指定する.
set datafile separator "\t"
# こちらでも良い
set datafile separator tab
CSVファイルを読み込む場合に指定する.
set datafile separator ","
# こちらでも良い
set datafile separator comma
ファイルに保存
PNG形式の graph.png へ結果を保存する.
set terminal png
set output 'graph.png'
PDF形式の graph.pdf へ結果を保存する.
set terminal pdfcairo font "Helvetica,16"
set output graph.pdf
set termoption enhanced
# 個人的によく使う組み合わせ
set terminal pdfcairo font "Helvetica,18" size 5in, 2in
EPS(ポストスクリプト)形式で結果を保存する.
set output 'graph.eps'
set terminal postscript eps color enhanced "Arial" 18
グラフのスタイル(目盛り,軸ラベル,凡例)
軸のフォントを以下で設定する.
set tics font "Arial,16" # 目盛りのフォントの変更
set xlabel font "Arial,18" # xlabelのフォントの変更
set ylabel font "Arial,18" # ylabelのフォントの変更
set zlabel font "Arial,18" # zlabelのフォントの変更
set key font "Arial,18" # 凡例のフォントの変更
軸ラベルを設定する.
set xlabel 'Elapsed time [Sec]'
set ylabel 'Measured error bytes [Byte]'
目盛りの表示範囲を設定する.
set xrange [0:1.0]
set yrange [0:1.0]
主目盛りの間隔を設定する.
set xtics 0.2
set ytics 0.5
副目盛りの間隔を設定する.
set mxtics 0.1
set mytics 0.1
目盛りのスケールを対数にする.
set logscale x
set logscale y
目盛りのラベルの形式を小数点第一位で揃える.
set format x "%.1f"
目盛りのラベルの形式を指数表記にする.
set format x "10^{%L}"
目盛りのラベルの形式を日付+時間に指定
set xdata time # x軸のデータを日付+時間に設定
set timefmt "%Y-%m-%d %H:%M" # データファイルのフォーマット
set format x "%H:%M" # 表示フォーマット(時間のみ)
# x軸の目盛り間隔を2019-12-04 00:00から2019-12-05 23:59までで2時間ごとにする
set xtics "2019-12-04 00:00", 14400, "2019-12-05 23:59"
凡例の位置を指定する.
## 非表示の場合(set nokeyは非推奨)
unset key
## グラフ内の右上に表示
set key right top
## グラフ外の右に表示
set key outside
## グラフ外の上に表示
set key outside top center
## グラフ外の上に表示(少し始点をずらす)
set key outside top center offset -5,0
## 凡例を横に2列で並べる
set key horizontal columns 2
## 凡例を横に並べたときの横の隙間を狭くする
set key width -3.0
グラフのスタイル(細かい部分)
グラフのX軸とY軸以外の罫線(ボーダー)を消す.上と右にある枠の線を消す.
unset border
set border 3
上と右の縁にある目盛りを消す.
set xtics nomirror
set ytics nomirror
棒グラフ
棒の幅
set boxwidth 1.0
棒の塗り
set style fill solid 0.7 border
折れ線グラフ
折れ線グラフを描画する.入力となるsample.dat 以下はsample.datファイルに書かれたデータをX軸が1列目,Y軸が2列目になるよう描画する. 凡例は,my-dataになる.
plot 'sample.dat' using 1:2 with linespoints linewidth 2 pointsize 1 title 'my-data'
10 250
15 330
20 370
25 70
30 140
以下は実際に作成したグラフの例である.
再描画する.これはplotしたあとに書かれた命令を反映させるために必要となる.
replot
Makefile
ディレクトリ内のpltファイルをまとめてビルドするMakefile
PLT_FILES := $(wildcard *.plt)
PDF_FILES := $(wildcard *.pdf)
all: clean plot eps
plot: $(PLT_FILES:.plt=.pdf)
eps: $(PDF_FILES:.pdf=.eps)
%.pdf: %.plt
gnuplot $<
%.eps: %.pdf
pdf2ps $< eps/$@
clean:
rm -f *.pdf eps/*.eps