2017-07-19 16 views
1

私は描画円のすべてのx、y座標と半径値を保持するデータファイルを持っています。各円は領域を表します。今まで私はサークルを描いていました。しかし、データファイルの各行に特定の凡例を割り当てる必要があります。描画領域の後に、この領域のいくつかの点を領域番号に応じて配置したいからです。しかし、私はそれを行う方法を理解できませんでした。サークルに特定の凡例を割り当てる方法を知っている人は、データファイルの行番号に依存します。データファイルは、gnuplotのデータファイルの各行に特定のタイトルを割り当てる方法

X Y R凡例

5 6 0.1 1

ように見える....

など。最後の列をタイトルとして使用してサークルに割り当てる必要があります。それを行う方法はありますか?

答えて

1

対応する「タイトル」をどの程度正確に表示するかによって異なります。

5 6.0 0.1 1 
5 5.5 0.1 2 
4 5.0 0.2 3 

1つのオプションは、円をプロットし、個々の円の中心に配置されているラベルとして4番目の列を使用することです:のデータファイルcircles.datには、以下のデータが含まれているとしましょう。これは、直接としてwith labels描画スタイルで達成することができます:

set terminal pngcairo 
set output 'fig1.png' 

fName = 'circles.dat' 

unset key 

set xr [3:6] 
set yr [4:7] 

set size square 
set tics out nomirror 
set xtics 3,1,6 
set mxtics 2 
set ytics 4,1,7 
set mytics 2 

plot \ 
    fName u 1:2:3 w circles lc rgb 'red' lw 2, \ 
    '' u 1:2:4 w labels tc rgb 'blue' 

これが生成します。 enter image description here

あるいは、グラフの伝説の中にこれらのラベルを置きたいかもしれません。おそらくよりエレガントな解決策があるが、それにもかかわらず、一つの方法は、別々に プロットデータファイルの各行にあり、手動で(キータイトルとして使用される)第4列を抽出:

set terminal pngcairo 
set output 'fig2.png' 

fName = 'circles.dat' 

unset key 

set xr [3:6] 
set yr [4:7] 

set size square 
set tics out nomirror 
set xtics 3,1,6 
set mxtics 2 
set ytics 4,1,7 
set mytics 2 

set key top right reverse 

stat fName nooutput 

plot \ 
    for [i=0:STATS_records-1] fName u 1:2:3 every ::i::i w circles t system(sprintf("awk 'NR==%d{print $4}' '%s'", i+1, fName)) 

これは与える: enter image description here

関連する問題