• ベストアンサー

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で書かせることは可能ですか?

  • amu
  • お礼率51% (47/92)

質問者が選んだベストアンサー

  • ベストアンサー
  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

set label を使えば、類似のことは実現できそうです。 参考:http://www.linux.or.jp/JF/JFdocs/gnuplot.html#ss25.20 つまり、 set label "A" at 1.2,3.4 set label "B" at 3.2,6.7 set label "C" at 5.3,9.8 という内容のファイル label と、 1.2,3.4 3.2,6.7 5.3,9.8 という内容のファイル data をつくっておき、 gnuplotのプロンプトで load "label" plot "data" とやれば表示されます。 UNIXということなので、 #!/bin/awk -f { print "set label \"$3\" at $1,$2" } というファイル label.awkを作れば、 awk -f label.awk data > label というコマンドでファイルlabelが作成できます。 ラベルと点の間を微調整したければ、 print "set label \"$3\" at $1,$2" を print "set label \"$3\" at $1+0.1,$2" のようにしましょう。

amu
質問者

お礼

大変遅くなりすみません。ありがとうございました。

関連するQ&A

  • 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で書かせることは可能ですか?

  • ラベル付き散布図の作り方

    Excelでラベル付き散布図を作りたいと思っています。 セルA行にデータの名前、B行にX軸のデータ、C行にY軸のデータがあります。通常であればBとC行を選択して散布図を指定すれば、自動的に散布図は出来ます。しかし、ラベルにしたいのは各データの名前なので、ラベル用にとA行を混ぜるとどうしても作図がうまく行きません。 やり方として、例えばここにその方法が書いてありますが、データが何百とあったら実際やっていられません。 http://software.ssri.co.jp/statweb2/tips/tips_6.html 何か自動で出来る他の方法はないでしょうか。

  • 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次元のグラフを描きたいのですが どのようにすればできるでしょうか? どなたかご存知の方よろしくお願いします。

  • エクセルのグラフで

    以下の様なデータでエクセルの散布図を作成しています。 A列;氏名 B列;年齢 C列;身長 B列とC列のデータを使用して作成した散布図で、 グラフ上、A列の氏名を表示する(この点は誰か分かるようにする) ことは可能でしょうか?

  • ラベル付き散布図作成マクロ、元データは必ず縦表?

    Excel でマクロを使用して散布図にラベルを付ける際に、以下のような説明・例を見つけたのですが http://support.microsoft.com/kb/213750/ja 散布図の元になるデータですが、この説明中にあるようにデータポイントを縦一列に並べないといけないのでしょうか。横に並んでいる状態でしたら無理でしょうか。 説明中の例となっている元データはこのように縦に並んでいます。 A1: Labels B1: X Values C1: Y Values A2: DataPoint1 B2: 12 C2: 5 A3: DataPoint2 B3: 9 C3: 7 A4: DataPoint3 B4: 5 C4: 3 A5: DataPoint4 B5: 4 C5: 8 A6: DataPoint5 B6: 1 C6: 4 この例となっている元データの下の注意書きに「ラベルや値は、この資料に記載されているフォーマットのとおりに配置する必要があります」と書かれています。他にもこのような説明をネット上で見つけましたが、どれも元データは縦列になっています。以下のように元データが横に並んでいる場合に可能な方法はないでしょうか。 A1: Label B1: DataPoint1 C1: DataPoint2 D1: DataPoint3 D1: DataPoint4 E1: Datapoint 5 A2: X Values B2: 12 C2: 9 D2: 5 D2: 4 E2: 1 A3: Y Values B3: 5 C3: 7 D3: 3 D4: 8 D5: 4 ご存知の方、教えていただけましたら幸いです。 宜しくお願いします。

  • ExcelでIF関数を用いたときの散布図のエラー

    win7 64bit+Excel 2010を使用しています. Excelにて、IF関数を用いて次のように何行か入力するとします. =IF(A1="","",A1+B1) =IF(A2="","",A2+B2) これをC列に出力し,D列に任意のデータを入力します. そして,C列をx軸に,D列をy軸にして散布図をとったときに,C列の選択したセルの最後の行が空欄になっていると,A列をx軸にとった散布図になってしまいます. 入力するデータ数は定まっていないため,余裕をとって散布図表示ができるようにしたいのですが, 解決できる方法がありましたら,是非,お教え願います.

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

    (x座標 y座標 値)という形式のデータで次のようなものがあります 1 1 32.4 1 2 23.4 .......... .......... 1 50 65.2 2 1 23.1 2 2 91.9 .......... .......... 2 50 73.2 .......... .......... 50 49 26.8 50 50 76.8 これを、二次元(x,y)のセル上で 50×50の濃淡プロットを作るには どうすれば良いでしょうか? gnuplotでなくてもOKです。 最初はexcelでやろうとしたのですが、思いの外大変でした。

  • Rの軸ラベルのプログラミングについて、お知恵を!

    独学でRを学んでいるのですが、資料提出のため急いでいるのと疲れてしまったのでどうかお知恵をお貸しください。 統計ソフトRでインデックスの内訳の項目同士の相関を縦3横4にデバイス領域を分割し10個の散布図を作成しているのですが、ラベリングでうまくいかない点があります。 x軸ラベルはすべて一緒のインデックスなのですが、y軸ラベル(ylab)を10個の散布図それぞれに自動的にdata(csvを読み込んだオブジェクト)の列ラベル(該当範囲は6から15番目)を当てはめてくれるようなプログラムを作りたいと思っています。 本来ラベルは文字で出したいのですが、文字より数字(1~10)のほうが簡単かと思い、試行錯誤してきたのですが、どれもうまく行かず疲れてしまいました。 現状、行の数が多いのでデータフレームは作っておらずベクトルのままです。 for(i in 6:15){plot(data[,2],data[,i],ylim=c(0,45), xlab=“", ylab=colnames(data[,i])} ※data[,2]にはx軸のindexのデータが入っています。 上のように打つと、y軸ラベルは10個すべてdata[,i]がそのままでてしまいます。data[,1], data[,2], data[,3]となることを期待したのですが。これは元データセットの型をデータフレームにしたら解消するのでしょうか?ちなみに僭越ながらさらに希望を申すと1,2,3,...と出てくれるプログラムができたらなお嬉しいのですが。 また、これが本来最もやりたいことなのですが、もしラベルの文字列そのものを表示させる方法、または一度リストなどに文字列の10個のラベルを入れてから、iの番号に会わせて順番に10のラベルの中から1つだけを取り出しラベルとして表示してくれるプログラムなどの手法がございましたらぜひご教授くださればと思います。 for文で書いて一度に10の散布図出してしまうとそれぞれのラベルが本当に簡単にはできないので困っています。 それから、土曜日までに結果を出さなければならず、急いでおります。 どうか何卒、よろしくお願いいたします。

  • EXCELでデータの2点間の値を求める方法

    例えばある2次元のデータが500点あるとします(x[1],y[1]),(x[2],y[2])・・・・・(x[500],y[500])。それをEXCELの散布図でグラフを作成したとき、それを平滑点で結びましたが、例えばある2点(x[i],y[i])と(x[i+1],y[i+1])の間にあるxの値における、その時のyの値を求める方法ってありますか? 

  • 散布図について

    以前bantamさんが質問していた(No46347)のですが、それでは解決しなかったので質問します。 EXCELを使って,散布図で、ラベルを表示したいのです。 たとえば、   ラベル  X   Y   a    200   250   b    150   120   c    300   278   d    243   200   e    120   100 のようなデータを散布図にすると、「ラベルを表示する」を選択すると、上のラベルではなく、Xの値が表示されます。「値を表示する」を選択するとYの値が表示されます。そうではなく、ラベルを表示したいのです。 やはり、テキストボックスなどで表示するしかないのでしょうか? ほかのソフトがあればそれでもいいのですが。