web-dev-qa-db-ja.com

透明な点で散布図を作成する方法

enter image description here

Gnuplotを使用したこの図のように、部分的に透明な散乱点を含む画像をプロットするにはどうすればよいですか?問題は、ポイントを透明に設定する方法がわからないことです。

15
Dd H

これを試して:

set style fill  transparent solid 0.35 noborder
set style circle radius 0.02
plot 'test' u 1:2 with circles lc rgb "blue", \
     '' u 1:2 every 100 w circles lc rgb "red" fs solid 1.0 border lt -1

出力する enter image description here

ご覧のとおり、透明度を使用するかどうか、および使用する色をデータセットごとに指定できます。
データが2つの値(円のx位置とy位置)で構成されている場合は、set style circle ...を使用して円の半径を指定する必要があります。データに3つの行がある場合、3番目の値を使用して、各データポイントの円の半径を指定できます。
0(完全な透明度)〜1(透明度なし)の範囲の透明度レベルで遊ぶことができます。

14
F. Knorr

Argbのアルファチャネルを_lc rgb variable_とともに使用できます。

_set samp 2000
randn(x) = invnorm(Rand(x))
pl [-3:3][-3:3] '+' us (randn(0)):(randn(0)):(0xBB00AAFF) lc rgb variable pt 7 ps 2
_

lp 7

これにより、各円の周囲にいくつかのエッジが残ります。おそらく、円とその上にある塗りつぶされた円による不透明効果です。残念ながら、これを制御するmatplotlibのようなedgecolorオプションはありません。塗りつぶされた円_pt 7_を白丸で置き換えますが、線幅が太い_pt 6 lw 6_でこれを少し軽減できます

_pl [-3:3][-3:3] '+' us (randn(0)):(randn(0)):(0xBB00AAFF) lc rgb variable pt 6 lw 6
_

pt 6 lw 6

変数の透明度を_lc rgb variable_でエミュレートすることもできます

_set samp 50
pl '+' us 1:1:(0x00AAFF+(int(0xFF*$1/10.)<<24)) pt 7 lc rgb variable ps 3
_

ここで、int(0xFF*$1/10.)は入力を0..10から0..255にマップし、_<<24_はそれをアルファチャネルにシフトします。

enter image description here

プロットでは、密な領域だけが透明効果を持っているように見えますが、背景の散乱点はありません。

6
Friedrich