• ベストアンサー

逐次的なグラフ表示の方法

mikaemiの回答

  • mikaemi
  • ベストアンサー率50% (33/65)
回答No.1

Windows に Unix のパイプ機能みたいなのがあるんでしたっけ?そういうのがあれば、   % myprogram | gnuplot Cプログラム(myprogram)の中では、gnuplot へのコマンドを標準術力に出してやるだけでOKですが。。。   …   FILE *fp = fopen("aaa.txt", "w");   fprintf(fp, ...);   /* 表示させる数値を書き込む */   fflush(fp);   printf("plot \'aaa.txt\'\n"); /* gnuplot への支持 */   fflush(stdout);   fprintf(fp, ...); /* 追加の数値を書き込む */   fflush(fp);   printf("replot\n");   fflush(stdout);   … パイプのようなものがなければ(cygwin をインストールしても、Unix 環境を作ってもいいですが(笑))、Cプログラム内で gnuplot と接続するようにプログラムを組んで、上と同様のことをすればいいのではないかと思います。Cから呼べる関数として提供されているグラフアプリケーションがあればもっとやりやすいですけどね。わたしは適当なものを知りません^^;

関連するQ&A

  • Excelのグラフの書き方について

    軌道の変化を見るためにグラフを作りたいのですが、別のソフトで出てくるデータをエクセルに移すと、 X1Y1 X2Y2 X3Y3・・・X99Y99 X100Y100といった形で並びます。これは1秒後にXとYがどのように変化していくかといったデータです。 分かりにくいと思いますが、これが横軸で更に縦に200個くらいずつ座標が表示されます。 グラフを作っていたのですが、自分の作り方は まずX1とY1についてのグラフを作り(A1からA200のX座標とB1からB200までのY座標をグラフ化)、その瞬間の軌道を表示させます。 次にそのグラフを右クリックして、オプションでグラフの追加をクリックして、X2Y2に関する軌道を表示させます。 つまりグラフの追加画面でX軸項目にC1からC200まで、Y軸項目にD1からD200と入れます。 これを繰り返すことで、一つのグラフ内にいくつも軌道を表示してます。一定の時間が経過するごとにどのように軌道が変化していくかを一つのグラフで表すためにこの方法をとっています。 非常に説明が分かりづらいかもしれません・・・ でもこの方法だと一度作ってしまえば次回からは数値の部分をコピーアンドペーストで変えるだけでいろんな軌道変化を表示させることが出来るんですが、今回は横軸が200個以上あり、一つずつグラフの追加でインプットするのが非常に大変なのですが、 この方法より簡単に出来る方法を知っている方がいましたら教えていただきたいです。 つまりX1Y1Y2Y3Y4Y5Y6・・・Y100だったらXが固定なので一回で全てのデータを一つのグラフに書き表せると思うのですが、 今回はXもYが変化するに応じて変化していってしまうということで悩んでます。 エクセルでなくてもX1Y1 X2Y2・・・などを簡単に一つのグラフに表せるフリーソフトがあれば教えていただきたいです。 また上記のように一つのグラフにいくつもの散布図を表し、一つのグラフ内に何本も線があるようにした場合、毎回散布図に表すと、一つのデータずつ色が変わってしまいます。 線の太さも色も同じにしたいので、毎回1系列ごとに書式を直しています。 これを一度でやる方法ってありますか?書式設定をグラフ内の全てに適用する方法を知っている方もいましたら教えてください。

  • 二次関数のグラフで

    直線x=-1とx>0とx軸で区切り、右上から半時計回りにA~Dと名付けたとき(境界線は含まない)y=x^2+ax+1(aは定数)のグラフがAとBを通り、CとDは通らないaの範囲を求める問題なんですが、解説お願いします 分かりにくくてすみません…

  • 6次関数のグラフから各係数の符号を知る方法

    6次関数y=f(x)=ax^6+bx^5+cx^4+dx^3+ex^2+fx+g のグラフがxy平面に描かれているとします。そのグラフから各係数の符号を、計算しないで視覚的に知る方法を考えたいのです。 x≒0のとき、y≒ex^2+fx+gなので、(0,f(0))の近傍でのグラフの様子から視覚的にe,f,gの符号を知ることができます。 つまり、y軸との交点がy>0なら、g>0。 グラフが右上がりなら、f>0。 グラフが下に凸なら、e>0。 |x|が十分大きいとき、y≒ax^6+bx^5≒a(x+b/6a)^6なので、グラフの大域的な様子から視覚的にa,bの符号を知ることができます。 つまり、大域的に「U字型」の形なら、a>0。 大域的に、いわゆるグラフの「軸」がy軸より左にあれば、b/6a>0。 c,dの符号を視覚的に知るようなアイデアがありましたら教えてください。

  • 2次関数グラフについて

    2次関数グラフについて お恥ずかしいことですが、以下の問題を解くことが出来ません。 出来る限り易しくお教えください。 (1)2点 A(0,1)とB(1,0)を通る直線上の点C(2,α)を放物線のグラフ y=x2乗+βは通る。αとβを求 めよ。 (2)2点 A(-1,1)とB(1,0)を通る直線上の点C(2,α)を放物線のグラフ y=x2乗+X-βは通る。  αとβを求めよ。 以上よろしくお願い致します。

  • グラフの概形をしめす??

    y=x^3+xのグラフの概形を示せと言う問題の解説に「y’=3x^2+1より、全ての実数xに対してy'>0である。したがってこの関数は増加関数であるがy'=0となることがない。また、この関数のグラフは原点に関して対称である。関数の増減だけからこのグラフの形の細かい点について知ることはできないがx=0のときy'=1であることからグラフが原点で直線y=xに接していることがわかる。」とあったのですが、なぜいきなり「この関数のグラフも原点に関して対称である」ということができるのでしょうか?グラフが原点に関して対象ではなく、値は分からないけどx≠0ではないどこかのxの値に関して対称でグラフが原点で直線y=xに接しているということもありえるのではないか?と思えてしまいます・・  お願いします!教えてください!

  • グラフの問題についてですが

    y=x^2 と y=x+6 の交点をA,C y=x^2 と y=x の交点をBと置いたとき A(-2,4) , B(1,1) , C(3,9) となるグラフで 点Aを通り、△ABCの面積を二等分する直線の式がわかりません。 三平方の定理を使わない解き方でお願いします。

  • グラフ表示

    例えば下記のような式を、グラフ表示してみたいのですが できるフリーソフトはありますか。 f(x,y)=xy/(x*x + y*y),(x,y)≠(0,0),f(0,0)=0

  • 両対数グラフでも通常のグラフでも直線に見える関数

    大学の授業でとあるデータをコンピュータでプロットしたのですが、それがよくわからなくて困っています。 両対数グラフで表示しても通常のグラフで表示しても直線に見えるのです。 通る点のうち二つは(1,9.85)(38,265.99)で、通常のグラフでの式を求めてみるとy=6.9227x+2.9273となりました。 グラフで直線に見えるといってもどちらでも微妙に歪んでいて、それがカギかと思うのですが、まったく分かりません。 どうしてこのデータのグラフはそう見えるのでしょうか。 確証がない説でもいいので、教えてください。

  • 4次多項式のグラフ

    4次多項式のグラフをEXCELで書く問題で困っています。 式と完成したグラフはあるのですが、なぜこのグラフになるのか分かりません。 式:F(t)=t^4/4-2*t^3+11*t^2/3-6*t グラフ:y軸が-100~900まで100目盛りづつ、x軸は0~10まで1目盛りづつ グラフにはF(t)とf(t)、2つのグラフがあります。 F(t)は式が与えられているのでなぜこのグラフになるのか理解できますが、f(t)は式もないしなぜこのグラフになるのかわかりません。 f(t)はF(t)のy軸と同じ値(0)から始まりy軸の200辺りで収まっています。 F(t)を計算すると F(t) x軸 0→y軸 0 x軸 1→y軸 -4.0833 x軸 2→y軸 -9.3333 x軸 3→y軸 -18.75 x軸 4→y軸 -29.333 x軸 5→y軸 -32.083 x軸 6→y軸 -12 x軸 7→y軸 51.916 x軸 8→y軸 186.66 x軸 9→y軸 425.25 x軸10→y軸 806.66 になります。 数学は得意ではないので説明が分かりにくいですが、よろしくお願いいたします。

  • グラフの書き方

    工学部の1年です。 周期的に変化する電場での電子の運動を表す式のグラフの書き方が分かりません。 グラフの書き方なのでこのカテゴリーで質問させて頂きます。 mω^2/eE・x(t)=-sinωt+ωt mω^2/eEやωは定数です。 y=ωtに対して振動する-sinωtのグラフになるのですが、その考え方や書き方が分かりません。 回答よろしくお願いします。