Gnuplotポイントの周りにボーダーを描く

Gnuplotポイントの周りにボーダーを描く

で説明されているように、Gnuplotを使用してドットをプロットしています。この記事。たとえば、

ドットプロットの例

しかし、各点の周りに黒い枠を描きたいです。上記の例では、正方形、円、三角形には黒い輪郭が必要です。

私の行定義は次のとおりです。

set style line 1 linecolor rgb '#ebac23' pointtype 5 pointsize 2

しかし、これらの定義には選択肢がないようですborder。これを達成する正しい方法は何ですか?

答え1

ボーダーオプションが見つかりません。回避策としてポイントを2回プロットできます。最初は黒い形を使用し、2番目は希望の色のわずかに小さい形を使用します。

unset key

set xrange [0.6:3.4]
set yrange [0:3]

# Square
set style line 1 linecolor rgb '#000000' pointtype 5 pointsize 3
set style line 2 linecolor rgb '#ebac23' pointtype 5 pointsize 2

# Circle
set style line 3 linecolor rgb '#000000' pointtype 7 pointsize 3
set style line 4 linecolor rgb '#ebac23' pointtype 7 pointsize 2

# Triangle
set style line 5 linecolor rgb '#000000' pointtype 9 pointsize 3
set style line 6 linecolor rgb '#ebac23' pointtype 9 pointsize 2

plot "<echo '1 2'"   with points ls 1, \
     ""              with points ls 2, \
     "<echo '2 1'"   with points ls 3, \
     ""              with points ls 4, \
     "<echo '3 1.5'" with points ls 5, \
     ""              with points ls 6

ここに画像の説明を入力してください。

残念ながら、この三角形はあまり正しくないようです。両方の三角形の中心が完全に整列していないようです。それでもおそらくそれだけで十分だと思います。そうでない場合は、ダイヤモンドや五角形の形状がより良いので、試してみることができます。

答え2

これを行うには、これを「乱用」することができますが、boxxyerrorbarsデータを複製する必要があります。以下では、データをブロックとして繰り返します。boxxyerrorbars4つの数字、x、y位置、幅、高さが必要です。各方向のデータ規模に合わせて選択する必要があります。

set xrange [0:3.5]
set yrange [0:3]
set style line 1 linecolor rgb 'blue' pointtype 5 pointsize 2
set style line 2 linecolor rgb 'blue' pointtype 7 pointsize 2
set style line 3 linecolor rgb 'blue' pointtype 9 pointsize 2
plot '-' w p ls 1 notitle, \
 '-' w p ls 2 notitle,  \
 '-' w p ls 3 notitle, \
 '-' using 1:2:(.08):(.1) with boxxyerrorbars black notitle
1 2
e
2 1
e
3 1.5
e
1 2
2 1
3 1.5
e

gnuplot イメージ

関連情報