web-dev-qa-db-fra.com

Comment faire des nuages ​​de points avec des points transparents

enter image description here

Comment puis-je tracer une image avec des points de dispersion transparents partiels comme dans cette image avec gnuplot? Le problème est que je ne sais pas comment définir les points pour qu'ils soient transparents.

15
Dd H

Essaye ça:

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

qui produit enter image description here

Comme vous pouvez le voir, vous pouvez spécifier pour chaque ensemble de données s'il faut utiliser la transparence et la couleur à utiliser.
Si vos données consistent en deux valeurs (position x et y du cercle), vous devez spécifier le rayon du cercle via set style circle .... Si vos données ont trois lignes, vous pouvez utiliser la troisième valeur pour spécifier le rayon du cercle pour chaque point de données.
Vous pouvez jouer avec le niveau de transparence, qui va de 0 (transparence totale) à 1 (pas de transparence).

14
F. Knorr

Vous pouvez utiliser le canal alpha d'argb avec 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.

Cela laisse un peu d'egde autour de chaque cercle, probablement un effet d'opacité d'un cercle plus un cercle rempli au-dessus. Malheureusement, il n'y a pas d'option edgecolor comme dans matplotlib pour contrôler cela. Le remplacement des cercles remplis pt 7 Par des cercles ouverts mais une largeur de ligne épaisse pt 6 lw 6 Peut atténuer un peu cela

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

pt 6 lw 6.

On peut aussi émuler un transparence variable avec 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.) mappe l'entrée de 0..10 à 0..255 et <<24 la déplace dans le canal alpha.

enter image description here

Notez que dans votre tracé, seules les régions denses semblent avoir un effet de transparence, mais pas les points de dispersion en arrière-plan.

6
Friedrich