Last update: 2024/12/15
gnuplotがインストールされてPATHが通っていること。gnuplotのインストールについてはこちらを参照。
私は主にLinux PCにSSH接続してCLIでLinuxを使っているため、gnuplotでウィンドウを立ち上げてグラフを表示させるより、画像ファイルで出力できたほうが何かと都合がよい。画像出力のテストとして、C++でSin波をplotした画像をpngファイルとして出力してみる。
#include <iostream>
#include <cstdlib>
#include <cmath>
int main() {
FILE *GP;
GP = popen("gnuplot", "w");
fprintf(GP, "set terminal png \n");
fprintf(GP, "set output 'output.png'\n");
fprintf(GP, "plot sin(x)\n");
fflush(GP);
pclose(GP);
return 0;
}
上のコードでは必要最小限の内容だけ書いているが、基本的にはターミナル上でgnuplotを使う時と同様のコマンドをfprintfで設定すればよい。
上のソースコードをg++でコンパイルして実行したところ、以下の画像がファイル出力できた。
肖 鋒 (著), 長崎 孝夫 (著) , 数値流体解析の基礎 - Visual C++とgnuplotによる圧縮性・非圧縮性流体解析 -, 2020, コロナ社
Cプログラムからパイプ経由でgnuplotを呼び出してグラフを書く(windows)
Copyright (c) 2024 kd