2015年5月14日木曜日

Gnuplot で X 座標が時刻のグラフに矢印や文字を描画

Gnuplot で X 座標が時刻のグラフに矢印や文字を描画してみました。グラフの X 座標が時刻なので矢印や文字も X 座標は時刻で指定しますが、項目によっては相対座標を数値で指定することもできました。

環境

  • Ubuntu 14.04 (Trusty Tahr) Server
  • Gnuplot 4.6 patchlevel 4

グラフに矢印を描画

以下のような Gnuplot コマンドファイル arrow.plt を用意します。

# 日時データグラフを描画するための各種設定
set terminal png size 640,240
set xdata time
set format x "%m/%d\n%H:%M"
set timefmt '%Y-%m-%d %H:%M:%S'
set xrange ['2015-05-13 23:00:00':'2015-05-14 01:00:00']
set yrange [100:300]
set xtics 900

# 矢印のスタイル 1の設定
# style arrow 1:
#   矢印スタイル番号 1
# size character 1.2, 20:
#   アローヘッドの大きさは文字(character)の大きさの 1.2倍
#   角度は 20度
# filled:
#   アローヘッドを塗りつぶし
set style arrow 1 size character 1.2, 20 filled linewidth 2

# 矢印 1を描画
# X 座標を時刻で指定しています。
# arrowstyle 1:
#   上で設定したスタイル番号 1を指定
set arrow 1 \
        from '2015-05-13 23:10:00',150 \
        to   '2015-05-14 00:45:00',250 \
        arrowstyle 1

# 矢印のスタイル 2の設定
# empty:
#   アローヘッドを塗りつぶさない
# linecolor rgbcolor 'red':
#   色は赤色
set style arrow 2 size character 3.2, 15 empty linewidth 4 linecolor rgbcolor 'red'

# 矢印 2 を描画
# rto  1800,100:
#   終点を始点からの相対座標で指定しています。
#   日時座標の場合は秒数で指定するようです。
set arrow 2 \
        from '2015-05-13 23:15:00',120 \
        rto  1800,100 \
        arrowstyle 2

#データが空のグラフを書いてます。
plot '-' using 1:3
end

グラフ画像ファイルを作成

$ gnuplot arrow.plt > arrow.png
"arrow.plt", line 47: warning: Skipping data file with no valid points
  • グラフデータが無く空グラフなのでワーニングが出ますが無視してください。

以下のグラフ画像ファイルができました。

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJk29fYTf5-SS1KHTOVOgQzgvg55pZCY_16GdeHjbgRxmmnSWrDv95H_iQjBcKsGFUA04sYtmfkXpRZmckbYNiO7f7pPSfoVcbNqpJW7jXZCUURJ9Kyg8HI5-kupWYnl7cWXVFZEz-/s1600/arrow.png

グラフに文字を描画

以下のような Gnuplot コマンドファイル character.plt を用意します。

# 日時データグラフを描画するための各種設定
set terminal png size 640,240
set xdata time
set format x "%m/%d\n%H:%M"
set timefmt '%Y-%m-%d %H:%M:%S'
set xrange ['2015-05-13 23:00:00':'2015-05-14 01:00:00']
set yrange [100:300]
set xtics 900

set label 1 center at first '2015-05-13 23:15:10', 250 'Hello'

#データが空のグラフを書いてます。
plot '-' using 1:3
end

グラフ画像ファイルを作成

$ gnuplot character.plt > character.png
"character.plt", line 14: warning: Skipping data file with no valid points

以下のグラフ画像ファイルができました。

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQbUHFuo7uDTRg0ihszcn1BE84zpp-38-La3do5ITyl01M16TwrgIit0FMnUpNwG6iDSiF_AmGEBl4-7BdyYSgSUGIW-rWZ1l1BUwR3ce8eZj1kZa0qkZAAxwRNoBwZJOReE09kydt/s1600/character.png

0 件のコメント:

コメントを投稿