PGPLOT
gnuplot
|
PGPLOTPGPLOTは,C言語から呼び出すことができるライブラリーである.gunplotも,C言語から呼び出すことが可能であるが,パイプをつかうことになり,不便なところがある.計算途中でグラフを書かせる場合,PGPLOTの方が便利そうである.このような理由で,PGPLOT を使ってみることにする.仕入れた知識やテクを忘れないように,このページにメモを残す. 目次インストール方法インストールPGPLOTのバイナリファイルを見つけることができなかったので,ソースからインストールした.配布元のwebページにインストール方法が詳しく書かれているので,難しくない.そこに書かれている通りにして,pgplot をインストールした.以下に,その順序を示す.
これで,インストールは完了.あとは,デモプログラムで確認する. デモプログラムデモプログラムが用意されているので,問題なくインストールできたことを確認する.
デモプログラムはソースを見ることができるので,プログラムを作成するときの参考になる. 作図方法C言語から,PGPLOTを呼び出して使う方法をまとめる. ヘッダーファイルとコンパイル方法C言語で PGPLOT を使うためには,ヘッダーファイル cpgplot.h をインクルードする必要がある.このヘッダーファイルには,pgplot で使う関数のプロトタイプが書かれている. #include "cpgplot.h" コンパイルは,以下のようにして行う. $ gcc -c -I/usr/local/pgplot sin_wave.c $ g77 -o sin_wave sin_wave.o -lcpgplot -lpgplot -lX11 -lgcc -lm -L/usr/local/pgplot いちいち,こんなコマンドを打つのは大変なので,Makefileを書くことを勧める.例 えば,以下のように書けばよい.これで,make だけで実行ファイルができあがる. TARGET = sin_wave OBJS = $(TARGET).o CC = gcc FC = g77 CFLAGS = -Wall INCDIRS = -I/usr/local/pgplot LIBDIRS = -L/usr/local/pgplot LIBS = -lcpgplot -lpgplot -lm -lX11 all: $(TARGET) $(TARGET): $(OBJS) $(FC) -o $(TARGET) $(OBJS) $(CFLAGS) $(LIBDIRS) $(LIBS) $(TARGET).o:$(TARGET).c $(CC) -c $(TARGET).c $(CFLAGS) $(INCDIRS) clean: rm -f *.o 開始・終了開始と出力デバイス設定PGPLOTはオープンではじめて,クローズで終了する.オープンするためには,cpgopen() 関数を使う.引数は出力デバイスで,戻り値はデバイスの識別子(整数)である.通常は,次のように書く. if((plot1 = cpgopen("/xserv")) <= 0)exit(1); 引数の/xservで,出力デバイスをX Windowとしている.ここは,device/type あるい は,file/type と書く.
戻り値は,正の値の場合はデバイスの識別子,ゼロまた負の値の場合はエラーをあら わす. 終了終了処理のクローズは,以下のように書く. cpgclos(); 注意事項
プログラム例使い方の参考のために,てきとうなサンプルプログラムを作成して載せる. アニメーションデモプログラムの pgdemo11.f を参考に,アニメーションのプログラムを作成した.プログラムを実行させると,下図のようなグラフが現れ,動き出す.下のグラフのstart ボタンを押すと,プログラムと同じ動作をする.3周期,振動する定在波となっている. 参考
|