• 締切済み

gnuplotの使い方についてご

gnuplotの使い方についてご指導お願いします。 gnuplotを使用するとき、 set xl ”xxx” set yl ”yyy” set grid : : などのコマンドを毎回打っているのですが。このコマンドを一度に設定することはできないのでしょうか? すなわち mycode と 打ったらこれらが入力されたことに関数の定義みたいにできないのでしょうか?? 解説よろしくお願いします。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20140226/gnuplot-ja-div/node16.html 予めファイルにコマンドを買いておいて、それを実行することができます。 http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20140226/gnuplot-ja-div/node23.html http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20140226/gnuplot-ja-div/node52.html 初期設定ファイルを使って設定することができます。 http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20140226/gnuplot-ja-div/node56.html マクロが使えます。 上の初期設定ファイルに書いておけば、毎回定義しなおす必要が無くなります。 最初に1回実行するだけなら、マクロを使わずに、初期設定ファイルで設定するのがよいでしょう。

関連するQ&A

  • gnuplotでreplotできない??

    下記のプログラムを書きました。 下記のプログラムでは1枚のグラフの複数のグラフをどんどん重ね、さらに1つのemfファイルとして出力し保存しようとしています。 しかし、問題が発生しました。 プログラム中のfprintf(gp, "replot (x+1)*x*(x-1)\n");を消すとプログラムは動くのですがreplotがあるとうまく画像ファイルが保存されません。 emfファイルはできている(ファイル容量は0ではない。)のですが、emfファイルが壊れており見ることができません。 その理由がわかる方がいましたら、教えていただけないでしょうか? よろしくお願いします。 以下、書いたプログラムです。 #include <stdio.h> #include <windows.h> #include <tchar.h> #include <string> #include<conio.h> using namespace std; #define GNUPLOT_PATH "C:/gnuplot/gnuplot/binary/gnuplot.exe" //char *a[10]; char a[10][50]; long n; long l; int main() { FILE *gp; gp = _popen(GNUPLOT_PATH, "w"); if (gp == NULL) { fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH); exit(EXIT_FAILURE); } // gnuplotにコマンドを送る fprintf(gp, "set terminal emf color 'Ryumin-Light-EUC-H' 16\n"); fprintf(gp, "set output '%s.emf'\n", a[n]); fprintf(gp, "set title '日本語-入力テスト'\n"); //x軸の範囲の設定 //fprintf(gp, "set xrange [-60:60]\n"); //fprintf(gp, "set yrange [0:3]\n"); fprintf(gp, "set grid\n"); fprintf(gp, "set datafile separator ','\n"); fprintf(gp, "set datafile separator ','\n"); fprintf(gp, "set key bottom outside\n"); fprintf(gp, "plot sin(x)\n");     fprintf(gp, "replot (x+1)*x*(x-1)\n"); fflush(gp); // バッファに格納されているデータを吐き出す(必須) //getchar(); // 入力待ち _pclose(gp); exit(EXIT_SUCCESS); return 0; }

  • PHPでexec関数の記述方法について

    phpでexec関数を使う時に、コマンドの記述を、 exec("xxx -yyy zzz"); と記述すると上手く動きますが、 exec("xxx -yyy zzz"); と改行を含むと正しく実行されません。 exec関数は改行させた記述は不可能なのでしょうか? とても長いプログラムになってしまって困っています。 どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • Javaからパイプでデータ送信しGnuplot描画

    大変お世話になります。 以下のスロットで、Javaから単純にGnuplotのsin(x)コマンドを実行させ、描画される方法が紹介されていました。 http://okwave.jp/qa/q5427703.html 今回、上記の改良として以下の2点についてご質問させて頂けますでしょうか。 1)Java側で、例えば y=sin(x) の、x値(for文により生成)、y値を計算させ表示。 同時にこの、x値、y値を(多分)パイプ経由で、Gnuplot側に送りそれを描画させる方法。 (Javaから"plot sin(x)"を指示するのではなく、Gnuplotにはデータ値を送付) 2)及び上記描画(プロット)表示を、アニメーション的に描画される方法。 多分、こちらもJava側でGnuplot向けの描画コマンド中にfor文を用意し、x値とそのy値のセットを順次・動的にGnuplot側に送り出す事が必要と思います。 (C言語では同様のアニメーション表示が出来ている記載が別webにあり、sin(x)波がニョロニョロと動くように描画されています) http://ayapin-film.sakura.ne.jp/LJ/Docs/40th.pdf http://www.eng.kagawa-u.ac.jp/~haruna/memo/gnuplot/gnuC.html http://kabuto.phys.sci.osaka-u.ac.jp/~yuhii/pc/gnuplot_animation.html 以上2点をご存知でしたら、教示して頂きたいと思います。 ご理解頂ける方がいらっしゃいましたら、ご指導宜しくお願い致します。

  • #defineの定数を文字列として読み込む

    #define A "xxx" #define B "yyy" と定義しておいて scanf("%s", str) で読み込んだ文字列strが "xxx"だった場合、"yyy"だった場合のように分岐したいのですが このとき if(str == "xxx") のように中身を指定するのではなく if(str == AA) のように定数で分岐させることってできますか? 上記のままではできませんが、何か特別な関数とかでできるのでしょうか?

  • MSDOSコマンドでディレクトリ内をきれいにしたい

    DOSコマンドで複数のファイルとサブディレクトリをすべてどこかのディレクトリに移動するのと削除するにはどのようなコマンドになりますでしょうか? 複数行のバッチファイルにすることを想定しておりますので複数コマンドになってもOKです。 del,moveコマンドやrmdirだけでは対応できなそうなので、、、。 (1) C:\TEST\ C:\TEST\a.txt C:\TEST\b.txt C:\TEST\XXX\xxx.txt C:\TEST\YYY\yyy.txt を C:\TEST_NEW\ C:\TEST_NEW\a.txt C:\TEST_NEW\b.txt C:\TEST_NEW\XXX\xxx.txt C:\TEST_NEW\YYY\yyy.txt に移動したいのと (2) C:\TEST\ C:\TEST\a.txt C:\TEST\b.txt C:\TEST\XXX\xxx.txt C:\TEST\YYY\yyy.txt を C:TEST\ 内を空っぽにしたいです。 C:\TEST\ の中身は毎回変わり(上記a,b,XXX,YYY,xxx,yyyの名前が変わる)、(1)と(2)のバッチファイルを作って、ときどき C:TEST\をきれいにしたいです。

  • Access SQL [ ]やピリオドの有無の違い

    AccessのVBAのコードを見ているのですが、 コードの中のSQLの記述で、 よく分からないことがありますので教えてください。 strSQL = "UPDATE XXX " & _ "INNER XXX " & _ "[SELECT XXX.XXXX, XXX.XXXX,…XXX.XXXX " & _ " FROM XXX " & _ " WHERE ((XXX.XXXX)='" & XX & "') " & _ " AND ((XXX.XXXX)='" & XX & "') " & _ " AND ((XXX.XXXX) =1))]. AS YYY " & _ "ON (XXX.XXXX = YYY.YYYY) " & _ "AND (XXX.XXXX = YYY.YYYY) " & _ "AND (XXX.XXXX = YYY.YYYY) " & _ "AND (XXX.XXXX = YYY.YYYY) " & _ "SET XXX.YYYY = YY " (注記) XXX,YYYYなどは、テーブル名、フィールド名などですが、     同じXXXXとXXXXでも年と月のように別のフィールド名です というような記述があるのですが、 (問1) サブクエリの部分の[ ]ですが、    私がこれまで見てきたサブクエリは    ( )が使われていたのですが、    ( )と[ ]とでは、    何か違いがあるのでしょうか。 (問2) 別名の部分の[ ]. AS YYYですが    私がこれまで見てきた別名は    [ ] AS YYYというように    ピリオド(.)は付いていなかったのですが、    ピリオド(.)が付いていない場合と    ピリオド(.)が付いている場合とでは、    何か違いがあるのでしょうか。 (問3) (問1)とよく似ていますが、    サブクエリではなくフィールド名    または、テーブル名.フィールド名に    [ ]が付いているのを時々見かけます。    例えば、    IIf([XXXX] Is Null,0,[XXXX])…    SELECT Max(IIf(Val([XXX].[XXXX])<4,Val([XXX].[XXXX])…    などですが、たまたま、関数の中にあるだけなのか、    関数の中だけで別の意味になるのかはよく分かりません。    [ ]が付いていない場合と    [ ]が付いている場合とでは、    何か違いがあるのでしょうか。 (Microsoft Access 2010) (Windows7) よろしくお願いします。

  • エクセルの関数でIPアドレスのあるブロック部分だけ文字列を取り出したい

    A1セルに www.xxx.yyy.zzzというIPアドレスがあります。 このうちyyyの部分だけ、関数を使用してB1セルに自動で入力するようにしたいです。 www.xxx.の文字数は常に固定ですが、yyy.zzzは文字数が変動します。 yyy、zzzの各ブロックは最低1文字、多くて3文字になります。 お手数ですが、ご教授頂きたくお願い申し上げます。

  • VBSでコマンドプロンプトのカレントディレクトリを操作できますか?

    どうにも行き詰まってしまったので質問させてください。 Windows2000なんですけど、コマンドプロンプトを開くと C:\Documents and Settings\Administrator> となっています。 cd c:\xxx\yyyと入力するとカレントディレクトリを変更することが出来ますが、VBSで同じようにしたい場合は、どのように書いたらいいのでしょうか?

  • 改行コード再

    3つほど前に質問させてもらってますが質問の仕方をかえ もう一度質問したいと思います。putcharとgetcharを使って aaa,bbbb,ccc CRLF zzz,yyy,xxxという入力は aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF と出力する とあるのですがCRLFを実際に打ち込んで出力してますよね? CRLFについてはなんとなくわかったのですがこの辺が よくわかりません。

  • C言語における漢字の取り扱いについて??

    C言語とgnuplotを利用して下記のプログラムを書きました。 #include<iostream> #include<cstdio> #include<stdio.h> using namespace std; #define GNUPLOT_PATH "C:/gnuplot/gnuplot/binary/gnuplot.exe" int main() { FILE *gp; char s[100]; scanf("%s", s); gp = _popen(GNUPLOT_PATH, "w"); if (gp == NULL) { fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH); exit(EXIT_FAILURE); } // gnuplotにコマンドを送る fprintf(gp, "set terminal png\n"); fprintf(gp, "set output 'plot_sample.png'\n"); //fprintf(gp, "set "xl 距離"\n"); fprintf(gp, "set title '%s'", s); fprintf(gp, "set xrange [-pi:pi]\n"); fprintf(gp, "plot sin(x), (x+1)*x*(x-1)\n"); fflush(gp); // バッファに格納されているデータを吐き出す(必須) //getchar(); // 入力待ち _pclose(gp); exit(EXIT_SUCCESS); } ここでscanf(%s,s);のところでsに、あア亜と入力しました。 最終的にpngの画像としてあア亜と出力させようとしているのですが、文字化けして文字がうまくひょうじされていません。 なぜ、うまくいかないのかわかっていません。 pngにおける文字の取り扱いの問題なのかC言語における文字の取り扱いなのかと考えて解決策を考えているのですが、うまくいきません。 もしわかる方がいましたら教えていただけないでしょうか? よろしくお願いいたします。