LoginSignup
16
12

More than 3 years have passed since last update.

gnuplotの使い方

Last updated at Posted at 2019-04-29

大学でgnuplotを使ってグラフを作成する機会があったので、自分用に基本的なgnuplotの使い方をメモっておいたほうがいいと思ったので記録します。

gnuplotとは?

gnuplotは、2次元もしくは3次元のグラフを作成するためのアプリケーションソフトウェアである。よく大学のレポートで使われている。

gnuplotのインストール

gnuplotはWindows,Mac,Linuxなどで使うことができる。
下記のサイトが参考になるので一応、載せておきます。

gnuplotで簡単なグラフを作ってみる

gnuplotを起動させる

sugiyoshi% gnuplot                                     

    G N U P L O T
    Version 5.2 patchlevel 6    last modified 2019-01-01

    Copyright (C) 1986-1993, 1998, 2004, 2007-2018
    Thomas Williams, Colin Kelley and many others

    gnuplot home:     http://www.gnuplot.info
    faq, bugs, etc:   type "help FAQ"
    immediate help:   type "help"  (plot window: hit 'h')

Terminal type is now 'qt'
gnuplot>

起動している間はずっとgnuplot>が先頭に表示される。

関数からグラフを作る

まずy=8x+5を表示してみる。

gnuplot> plot x*8+5

このように入力すると下のようにグラフが作られる。

gnu1.png

x軸、y軸の範囲を指定する

x軸の範囲を指定したい時はset xrange [x1:x2]
y軸の範囲を指定したい時はset yrange [y1:y2]をそれぞれ使う

replotはグラフの設定を変える時に使用する。

gnuplot> set xrange [-5:5]
gnuplot> set yrange [-10:20]
gnuplot> replot

そして、できたグラフがこちらです。

gnu2.png

x軸、y軸に名前をつけ、グラフ自体にタイトルを付けて、格子線を設定する

x軸の範囲を指定したい時はset xlabel '名前'、 
y軸の範囲を指定したい時はset ylabel '名前'
グラフ自体にタイトルを付ける場合はset title "タイトル"
格子線を設定するにはset gridを使う。

gnuplot> set xlabel 'x軸でーす'
gnuplot> set ylabel 'y軸ンゴ'
gnuplot> set title "これがタイトルです"
gnuplot> set grid
gnuplot> replot

出来上がったグラフはこちらです。

gnu3.png

最後に格子線を設定し、pngで画像を保存する

pngで保存したい時はset terminal png
保存先を指定するset output "名前.png"
gnuplotを終了させるにはexitを使う。

gnuplot> set terminal png
gnuplot> set output "gnuplot.png"
gnuplot> replot
gnuplot> exit
sugiyoshi%

これで終わりです。
日本語に対応してないと、日本語がうまく画像に表示されないので注意してください!!!

gnuplotでファイルからデータを読み込んでグラフ2つを表示する

次はファイルからデータを読み込んでグラフを表示するという少し実践的なことをします。

ファイルを作成する

まず、このようにBandWidth.txtというファイルを作成します。
その時に注意してもらいたいのですが、数値と数値の間は必ず空白を1つ以上開けてください。

BandWidth.txt
#Time  1MByte 10MByte
0.0~1.0  16.777 83.886
1.0~2.0  16.777   0.000
2.0~3.0   8.389   0.000
3.0~4.0  25.166   0.000
4.0~5.0  16.777   0.000
5.0~6.0  16.777   0.000
6.0~7.0  25.166   0.000
7.0~8.0  16.777   0.000
8.0~9.0  16.777   0.000
9.0~10.0 25.166  83.886

ファイルから値を取ってきてグラフに挿入する

plot "ファイル名" using 1:2 w lp title "1つ目のグラフの名前"
replot "ファイル名" using 1:3 w lp title "2つ目のグラフの名前"

この時のusing 1:2はファイルの1行目をx軸の値とし、ファイルの2行目をy軸の値とするという意味である。

gnuplot> plot "BandWidth.txt" using 1:2 w lp title "1MByte"
gnuplot> replot "BandWidth.txt" using 1:3 w lp title "10MByte"

スクリーンショット 2019-04-29 19.05.21.png

簡単な設定を入れる

上の方で説明したので、省略する。

gnuplot> set xlabel 'Time(s)'
gnuplot> set ylabel 'Throughput(Mbps)'
gnuplot> set xrange [0:9]
gnuplot> set yrange [0:100]
gnuplot> set grid

wfdsfaf.png

x軸の値を変更する

x軸の値に文字列を入れる時は
set xtics ('文字列' x軸の値, '文字列' x軸の値',………,文字列' x軸の値)を使う。

gnuplot> set xtics ('0.0∼1.0' 0, '1.0∼2.0' 1, '2.0∼3.0' 2, '3.0∼4.0' 3,'4.0∼5.0' 4,'5.0∼6.0' 5,'6.0∼7.0' 6,'7.0∼8.0' 7,'8.0∼9.0' 8,'9.0∼10.0' 9)

スクリーンショット 2019-04-29 19.08.27.png

保存する

これも上の方で説明したので省く。

gnuplot> set terminal png
gnuplot> set output "BandWidth.png"
gnuplot> replot

終了ですね。

お疲れ様でした。

16
12
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
16
12