Q1)下記のC++から描画をしようとしますが、Gnuplotの画面は開きますが、
肝心のグラフの描画が出来ません。
つまり、描画のコマンドが受け付けられない様です
コメント頂けますと、たいへん有難いです。
注)添付ファイルの最後に
Terminal type is now 'qt' の表示があります。
=================
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define GNUPLOT_PATH "C:/PROGRA~1/gnuplot/bin/wgnuplot.exe" // gnuplot.exeのある場所
// \ではなく、/を使いましょう。
// Program FilesはPROGRA~1、Program Files(x86)はPROGRA~2に置き換えましょう
int main()
{
FILE* gp; // For gnuplot
// gnuplotの起動コマンド
if ((gp = _popen(GNUPLOT_PATH, "w")) == NULL) { // gnuplotをパイプで起動
fprintf(stderr, "ファイルが見つかりません %s.", GNUPLOT_PATH);
exit(EXIT_FAILURE);
}
// --- gnuplotにコマンドを送る --- //
fprintf(gp, "set xrange [-10:10]\n"); // 範囲の指定(省略可)
fprintf(gp, "set yrange [-1:1]\n");
fprintf(gp, "plot sin(x)\n"); //sin(x)を描く
fprintf(gp, "plot sin(x)\n");
fflush(gp); // バッファに格納されているデータを吐き出す(必須)
//system("pause");
fprintf(gp, "exit\n"); // gnuplotの終了
_pclose(gp);
}
============
以上、宜しくお願いします。
No.4
- 回答日時:
あ〜、このページでしょ?
[Windows] C言語でgnuplotを動かす:
https://www.eng.kagawa-u.ac.jp/~haruna/memo/gnup …
このページ、古いんじゃないかなぁ・・・・・・。
Linuxだとこれで一応成功するんですが。
/* ここから */
#include <stdio.h>
#include <stdlib.h>
#define GNUPLOT_PATH "gnuplot -persistent" // gnuplot.exeのある場所
// \ではなく、/を使いましょう。
// Program FilesはPROGRA~1、Program Files(x86)はPROGRA~2に置き換えましょう
int main(void)
{
FILE *gp; // For gnuplot
// gnuplotの起動コマンド
if ((gp = popen(GNUPLOT_PATH, "w")) == NULL) { // gnuplotをパイプで起動
fprintf(stderr, "ファイルが見つかりません %s.", GNUPLOT_PATH);
exit(EXIT_FAILURE);
}
// --- gnuplotにコマンドを送る --- //
fprintf(gp, "set xrange [-10:10]\n" // 範囲の指定(省略可)
"set yrange [-1:1]\n"
"plot sin(x)\n"); //sin(x)を描く
fflush(gp); // バッファに格納されているデータを吐き出す(必須)
// system("pause");
fprintf(gp, "exit\n"); // gnuplotの終了
pclose(gp);
exit(EXIT_SUCCESS);
}
/* ここまで */
Windows用に書き換えて確かめてみてください。
WIndows用に書き換えるTips:
1. UNIX/Linux/Macはgnuplot等のソフトをインストールするとパスが大体通るようになってるんで、パス設定が必要ないケースが多いが、Windowsならパス設定が必要だろう。
2. gnuplotは-persistentオプションを設定した方が良い(じゃないと開いてすぐ閉じる、とかになる)。
3. popen/pcloseはWindowsの処理系だと何故か_popen/_pcloseになっている。
No.3
- 回答日時:
Re:No.2
>> C++は完全にうごうて、コマンドの送出もおこなっています。
Gnuplotがパイプからのコマンドを受け付けないようですね。残念!
Gnuplot自体にファイルからコマンドを読み取る機能はありませんか?
有っても良さげですが。。。
Linuxではパイプの機能があるようですが、Windowsでは
無いようです。
gnuplotを立ち上げることは可能ですが、コマンドは受け付けない様です。
問題なのは、Gnuplotの使用方法のサイトの説明に、
WindowsかLinuxの記述が無いことです。
趣味や勉強にはLinuxは良いようですが、デスクトップの
AppでLinuxを使用したものは無いようです。
有償ソフトは全てWindowsの様です。
Linuxの画面はWindowsに比べて、醜いですね?
以上、回答有難う御座いました。
No.1
- 回答日時:
> つまり、描画のコマンドが受け付けられない様です
それは、貴方のプログラムが悪いんじゃなくって、単純にGNU PLOTの引数がコマンドラインとして描画コマンドを受け付ける仕様になっていないだけ、だと思います。
原則的に、GNU PLOTの描画コマンドを記述したテンポラリファイルを作成して、そのファイル名をGNU PLOTの引数に渡して、描画が終わった後、テンポラリファイルを削除するようにすれば良いだけだと思いますよ。
お世話になります。
下記のコマンドに対応するンポラリファイルに
ついて、お教え頂けますと大変有難いです。
fprintf(gp, "plot sin(x)\n");
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Excel(エクセル) エクセルまたはgnuplotグラフの書き方 2 2022/11/18 15:45
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
- ドライブ・ストレージ HDDとSSDどちらがいいか 7 2023/07/27 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ終了時にDOS窓を閉じるコ...
-
ショートカットをデスクトップ...
-
ftpコマンドを実行すると「425 ...
-
make test って何をするための...
-
シェルスクリプト(.sh)で、10進...
-
DOSコマンドに詳しい方、お知恵...
-
フォルダ、ファイル操作に最適...
-
シェルの「:コマンドが見つか...
-
バッチファイルでのMACアドレス...
-
コマンドプロンプトで、特定の...
-
バッチファイル 文字列にスペ...
-
シェル(sh)で実行コマンドを標...
-
C言語で、string.h conio.hを使...
-
MSDOSで容量チェックをしたい!
-
AccessVBAで実行時間を指定する...
-
バッチファイル
-
FTPでUNIX上のシェルを起動する...
-
FTPコマンドを非表示にする
-
コンピュータ名をファイル名に...
-
コマンドプロンプトをクリック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ終了時にDOS窓を閉じるコ...
-
バッチファイル 文字列にスペ...
-
make test って何をするための...
-
コマンドプロンプトをクリック...
-
ショートカットをデスクトップ...
-
バッチファイルを使ってテキス...
-
シェルの「:コマンドが見つか...
-
ftpコマンドを実行すると「425 ...
-
コンピュータ名をファイル名に...
-
バッチコマンドのIF文(条件...
-
SSH接続でwindowsサーバのコマ...
-
コマンドプロンプトで、特定の...
-
findstrでヒットした1行前の文...
-
FTP送信エラーの検知について
-
DOSコマンドで指定日数よりも過...
-
ftpコマンド出力結果の取得
-
Pythonで単純にファイルを結合...
-
AccessVBAで実行時間を指定する...
-
2つ目の「pause」は無効?
-
コマンドプロンプトを最小化し...
おすすめ情報