• ベストアンサー

gnuplot でこのような濃淡グラフを書けないでしょうか?

imoriimoriの回答

  • ベストアンサー
回答No.3

#2の者です。 「Densityplotというのがwebで見つかったのですが、関数のプロットのよう(?)です。 質問のデータを濃淡グラフでプロットするにはどうしたらよいのでしょうか?」 DensityPlotはおっしゃるとおり関数のプロットです。リストデータの濃淡プロットにはListDensityPlotというコマンドを使います。 ここでちょっとがっかりさせてしまうかもしれませんが、ListDensityPlotが扱うデータは {x座標、y座標、値}のデータ列ではなく、値がずらずらと並んだリストです。 もし手近にmathematicaを試せる環境ならば次のようなことをやってみればわかります。 data = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}}; ListDensityPlot[data, Mesh -> False]; 1から12までの濃度値が横3×縦4の升目に反映された図になります。 ですから、ご質問の例では、方法は二つです。 その1:{x座標、y座標、値}で並んだリストデータを値だけのリストデータに形を変えてやらねばなりません。 値だけのリストデータをmathematicaに書き込めばもちろんいいんですが、こつこつタイプインするのは50×50ではちょっと無理ですね。 リストデータを外部のテキストファイルに書き込んであるのなら、それをまずImportコマンドで読み込んで、そのあとリストデータの構造を変えて値だけのリストデータにします(リストデータの編集法は長々しい説明になってしまいますのでご勘弁ください)。 外部ファイルを作るときに値だけの羅列データにして、ずらずらと一列のデータとしてImportし、そのあとPartitionコマンドで50に区切ってやるのも良いです。 その2:{x座標、y座標、値}のデータ列からInterpolationコマンドで補間関数を作り、その補間関数をDensityPlotで描く。 正直、mathematicaはなぜ{x座標、y座標、値}のデータ列をスムーズに扱ってくれないのかちょっとうらめしく思うこともあります。ご質問の例ではきれいな直交格子にデータが並んでいるのでまだ良いのですが、座標がばらばらの(つまり直交格子から見れば歯抜けのあるような)データだとややこしいことになってしまいます。

white-tiger
質問者

お礼

ありがとうございます! 周りに mathematica に詳しい人がいないので助かりました。 Partitionというので何とかなりそうな気がします。

関連するQ&A

  • gnuplotで

    gnuplotで 例えば x = 10 のグラフを書きたいのですがどのようにしたら良いかわかりません。 例えば、y = 2x+10 であれば、 plot 2*x + 10 で書くことができますが、 y軸に垂直な値を記入する方法をご存知の方教えて下さい。

  • 濃度表示

    2次元上の書く場所の点の濃度をプロットしたいのですが、 (x座標、y座標、点の数)となっているデータを GLAYスケール表示する簡単な方法はありますか。 gnuplotでできるとうれしいです

  • gnuplotでグラフの出力

    gnuplotで以下のファイルを可視化したいのですが。 出力ファイルに 0.0 10E-9 1.0 10E-9 2.0 9E-9 .... ..... ..... ...... ..... ...... 10.0 ....... 12.0 ....... 15.0 ....... ..... ...... 170.0 ........ 180.0 ...... のような2列のデータがあります。 1列目をx軸、2列目をy軸として2次元のグラフを描きたいのですが どのようにすればできるでしょうか? どなたかご存知の方よろしくお願いします。

  • このグラフの持つ意味を教えてください。

    あるデータ(理論値と実験値)があります。 X座標に理論値、Y座標に実験値をそれぞれ10個ほどプロットしていきます。 この散布図を直線近似したとき45度に近いほど、X座標の値とY座標の値が近いということを意味するのでしょうか? つまり、理論値と実験値の整合具合をみるということでしょうか? ちなみに、前述したようにある実験の実験値と実験から求められた理論値(それぞれ日数に対する重量のグラフ)との値を比較したい場合に、X座標を理論値、Y座標を実験値にし、それぞれの重量をX・Yにプロットしていくのは間違っているのでしょうか? よろしければ教えてください。

  • gnuplotの座標軸の設定

    gnuplotで2Dまたは3Dのプロットをするときに、座標軸の交点(2Dの場合はx軸とy軸の交点、3Dの場合は3つの軸の交点)を原点にしたいのですが、どうすれば出来るでしょうか?

  • gnuplotでのグラフ作成について

    タイトルに在るとおりgnuplotを使用してのグラフ作成について質問させていただきます。 作成したいグラフの数式は、 z=h(x,y) h(x,y)=1/1+√<x^4+y^4> ×{xsin(4√<x^4+y^4>)+ycos(√<x^4+y^4>)} ただし、 x と y の範囲は -3 から 3 まで というものです。こういった形で数式を書くことに慣れていないため、見づらいところ多々在るでしょうが、ご容赦ください。 恥ずかしながらgnuplotというソフトに触れることが初めてなため、検索などを利用して自分なりに調べた結果なのですが。 1 h(x,y)=~ で h の数式を設定。 2 set xrange[-3:3] 3 set yrange[-3:3] で x y の範囲を指定。 4 sprot h(x,y) でグラフを作成する という流れになるのではないか、ということがなんとなくですがわかりました。 ここで私は、x yの範囲を指定後、h をプロットしようとするところで、hの情報が不足している(?)とのメッセージにて弾かれてしまいます。 恐らく私の、h の数式入力に不備が在るのだろうと思います。 平方根をsqrt 乗数は**n になることはわかっているのですが、どうにも手詰まりです。 お力添えをいただけないでしょうか。よろしくお願いします。

  • Excel グラフのプロットからデータを見つける

    こんにちは、おそらくとても基本的な作業なのですが、分からずに困っております。エクセルで、あるデータから散布図を作ったとします。するとプロットがグラフとして現れますが、このプロットがどのセルのデータに該当するかを見つけるにはどうしたらよいでしょうか。プロットをクリックしても、その座標の値しか現れず、どのセルに対応するのかをみつけることができません。ご存知の方宜しくお願いします。 Excel 2007を使用しております。

  • 3次元グラフ

    実験から得た3つの変数のデータ(x,y,z)をgnuplotに入力して3次元のグラフを作ったのですが、そのグラフのz=f(x,y)の近似関数を知りたいです。どうすればよいのでしょうか? gnuplotを使ったことがなくて全く分かりません。 宜しくお願いします。

  • GNUPLOTで点にラベルをつけて描きたい

    UNIXのGNUPLOTについて質問します。 例えば以下のようなデータがあったとします。 1.2 3.4 A 3.2 6.7 B 5.3 9.8 C この場合、1列目と2列目をそれぞれX,Yとし、3列目をその点または点につけるラベルとして2次元の散布図をGNUPLOTで書かせることは可能ですか?

  • gnuplotで点にラベルをつけたい

    UNIXのGNUPLOTについて質問します。 例えば以下のようなデータがあったとします。 1.2 3.4 A 3.2 6.7 B 5.3 9.8 C この場合、1列目と2列目をそれぞれX,Yとし、3列目をその点または点につけるラベルとして2次元の散布図をGNUPLOTで書かせることは可能ですか?