見出し画像

【GNUPLOT】とりあえず使ってみたい人向けのGNUPLOT

理系でプログラミングなりなんなりをやったときの付き物といえばグラフ作成でしょう。
おおよその人はExcelでパパっと作っていると思いますが、データを出力したファイルがダットファイル(.dat)だったり、そもそものデータがボリューミーだとExcelでは物足りないと思います。

私は普段からGNUPLOTを使っています。
これは古くからあるグラフ作成ソフトのようなもので、今でも使う人は使っている、という感じです。

しかしこのGNUPLOTはExcelのように初心者でもすぐ使いまわせるかというとそんなことはなさそうなので、この記事で簡単に使い方などを紹介します。

あくまでも「とりあえず使ってみたい人」向け、です。


ダウンロード

gnuplot でググって出てくるホームページからダウンロードします。
これに関してはいろいろなサイトでダウンロード方法が紹介されているので、そちらを参考にしてください。

まぁ、基本的に脳死で進めてもうまくいくと思います。
あえて言葉添えするとしたら、すでにGNUPLOTをインストールしているのに、そのうえで新たにダウンロードする場合は干渉しあってうまく使えないことがあるのでその場合は古い方をアンインストールするなりした方がいいと思います。

ターミナルについて

無事インストールが終わって、いざGNUPLOTを立ち上げると上の画像のようなものが出てきます。
これがターミナルです。

GNUPLOTではこのターミナルに色々命令を打ち込むことでグラフを出力させていきます。

この打ち込む命令のことをコマンドと言います。

グラフの出力


ではとりあえずグラフを出力させてみましょう。
テストとして$${f(x)=\sin x}$$
 を描いてみましょう。

ターミナルに

plot sin(x)

と打ち込んで、Enterを押すと

と、$${\sin(x)}$$のグラフが出力されます。

グラフを複数プロットしたい場合

もしグラフを複数プロットしたい場合は

plot sin(x), x**2

のようにカンマを用いてあげるとよいです。ちなみに、"x**2"は$${x^2}$$を表しています。つまりべき乗は、**を用いることで表現できるわけですね。
実際にこのコマンドを用いて出力したグラフが以下です。


ファイルからグラフを出力する

Fortranなんかで数値計算的なことをやっている人だと、数値計算の結果をdatファイルなどで出力しておいて、そののちにグラフ化するという人もいるでしょう。

そういう場合のグラフのプロットもお教えします。

ディレクトリの移動

とその前に、ファイルのグラフ出力の際にほぼ必須と思われるディレクトリの移動についても説明します。

ディレクトリというのはファイルのある場所や階層のことを言います。((これの詳細はほかのサイトをあたってください。))
GNUPLOTでファイルを読み込む際は、ファイルがあるディレクトリをGNUPLOTに教えてあげる必要があります。

コマンドは

cd 'ファイルのあるディレクトリ'

となります。''内のファイルのあるディレクトリについてですが、Windowsの場合、エクスプローラーから調べることが出来ます。

上のスクリーンショットの矢印部分をクリックすることでディレクトリが表示されます。それをコピーして貼り付けるといいでしょう。

ファイルからグラフを出力する

たとえば以下のようなファイルがあったとします。
ファイル名はoutput.dとしています。

左端の、黄色で書かれた数字は行数を表しています。
赤い数字で、それぞれ左から、$${x, y, z}$$の数値を表しています。

ではこれをGNUPLOTでプロットしてみます。
コマンドは

splot 'output.d' with line

です。(splotというのは3次元のときなので、2次元で作画したい人はこれまで通りplotでOKです)
すると


のように作画することが出来ます。"with line"というのは線で表現してという意味なので、省略可能です。
すなわち外部ファイルを読み込んでグラフ出力したい時は

(s)plot "ファイル名" 

と打ち込めばよいということになります。

まとめ

今回はひとまずGNUPLOTを使ってみたい方向けに記事を書いてみました。

1. GNUPLOTをインストールする
2. GNUPLOTを開く
3. ターミナルに作図したい関数を入力する

おおまかには、これで作図ができます。
ファイルからデータを読み取って出力したい場合は

1. ファイルが置いてあるディレクトリまで移動させる
2. ファイルを読み込む

という流れになります。
これでなんとなくはGNUPLOTを使えるようになったと思います。

もっと発展的な内容については後日、改めて記事を書こうかなと思うので、読みたい方は気長にお待ちください!


サポートいただきありがとうございます!