2017-04-20 2 views
1

Ich möchte einen gefüllten Kreis in Gnuplot zeichnen, aber mit Transparenz mit der Entfernung zum Mittelpunkt des Kreises, d. H. Ein Transparenzgradient (fest in der Nähe der Mitte und transparent in der Nähe des Radius des Kreises).Variable Transparenz ist in Gnuplot möglich?

I want something like this

Gibt es eine Möglichkeit, dies in Gnuplot zu tun?

Vielen Dank im Voraus!

Antwort

0

Eine Möglichkeit wäre, eine benutzerdefinierte Funktion zu definieren, die Gradienten beschreiben (zum Beispiel einer Gaußsche) und dann pm3d map es sichtbar zu machen verwenden:

set terminal pngcairo size 400,400 
set output 'fig.png' 

unset border 
unset colorbox 
unset xtics 
unset ytics 

set pm3d map 

#force the plot to occupy the entire canvas 
set lmargin at screen 0 
set rmargin at screen 1 
set tmargin at screen 1 
set bmargin at screen 0 

set isosamples 100,100 

#specify custom palette 
set palette model RGB 
set palette defined (0 "white", 1 "royalblue") 

set xr [-10:10] 
set yr [-10:10] 

#a Gaussian might be a reasonable choice 
splot exp(-0.2*(x*x+y*y)) 

Dies erzeugt dann:

enter image description here

Eine andere Wahl der definierenden Funktion könnte sein:

set xr [-pi:pi] 
set yr [-pi:pi] 
fn(r) = (r>(pi/2))?0:(cos(r)) 
splot fn(sqrt(x*x+y*y)) 
Dies ergibt

:

enter image description here

0

Versuchen Sie folgendes:

set xrange [0:10] 
set yrange [0:10] 
do for [i=1:100] { 
set style fill transparent solid i/100. noborder 
set object circle at 5,5 radius 1.-i/100. fc rgb 'blue' 
} 
plot -1 

enter image description here

Nicht alle Terminals Transparenz unterstützen; siehe help transparent. Ich habe dies mit dem Terminal x11 gemacht.

Verwandte Themen