Back to demo index

gnuplot demo script: rgb_variable.dem

autogenerated by webify.pl on Wed Aug 21 21:28:50 2024
gnuplot version gnuplot 6.1 last modified 2024-08-21
#
# Demo of reading color information from the data file itself
#

#
rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)

#
set border 0
unset xtics; unset ytics; unset ztics
set rmargin 5; set lmargin 5; set bmargin 2

set angle degrees
xrgb(r,g,b) = (g-b)/255. * cos(30.)  
yrgb(r,g,b) = r/255. - (g+b)/255. * sin(30.)
set arrow 1 from 0,0 to 0,1 nohead lw 3 lc rgb "red" back
set arrow 2 from 0,0 to cos(-30), sin(-30) nohead lw 3 lc rgb "green" back
set arrow 3 from 0,0 to cos(210), sin(210) nohead lw 3 lc rgb "blue" back

set title "RGB color information read from data file"
plot 'rgb_variable.dat' using (xrgb($1,$2,$3)):(yrgb($1,$2,$3)):(rgb($1,$2,$3)) \
     with points pt 7 ps 4 lc rgb variable notitle

Click here for minimal script to generate this plot




#
set title "Both RGB color information\n and point size controlled by input"
plot 'rgb_variable.dat' using (xrgb($1,$2,$3)):(yrgb($1,$2,$3)):(1.+2.*rand(0)):(rgb($1,$2,$3)) \
     with points pt 7 ps var lc rgb variable notitle

Click here for minimal script to generate this plot




#
set border -1 front linetype -1 linewidth 1.000
set ticslevel 0
set xtics border
set ytics border
set ztics border
#
unset arrow 1
unset arrow 2
unset arrow 3
#
set xlabel "Red" tc rgb "red"
set xrange [0:255]
set ylabel "Green" tc rgb "green"
set yrange [0:255]
set zlabel "Blue" tc rgb "blue"
set zrange [0:255]

#
splot 'rgb_variable.dat' using 1:2:3:(rgb($1,$2,$3)) with points pt 7 ps 4 lc rgb variable, \
      '' using 1:2:3:(sprintf("0x%x",rgb($1,$2,$3))) with labels left offset 1 notitle

Click here for minimal script to generate this plot



#
#
# Unfortunately, not all platforms allow us to read hexadecimal constants
# from a data file. Warn the user if that is the case.
#
if (0 == int('0x01')) \
   set label 99 at screen .05, screen .15 "If you see only black dots,\nthis means your platform does not \nsupport reading hexadecimal constants\nfrom a data file. Get a newer libc."

splot 'rgb_variable.dat' using 1:2:3:(5*rand(0)):4 with points pt 7 ps variable lc rgb variable \
      title "variable pointsize and rgb color read as hexadecimal"


Click here for minimal script to generate this plot



set label 99 ""
#
set border 0
set xtics axis nomirror
set ytics axis nomirror
set ztics axis nomirror
set xzeroaxis lt -1 lc rgb "red" lw 2
set yzeroaxis lt -1 lc rgb "green" lw 2
set zzeroaxis lt -1 lc rgb "blue" lw 2
set xyplane at 0.0

splot 'rgb_variable.dat' using 1:2:3:(5*rand(0)):(rgb($1,$2,$3)) with points pt 7 ps variable lc rgb variable \
      title "variable pointsize and rgb color computed from coords"

Click here for minimal script to generate this plot




set title "Demo of hidden3d with points only (no surface)"
set hidden3d
replot

Click here for minimal script to generate this plot



#

RGB(R,G,B) =  int(255.*R) * 2**16 + int(255.*G) * 2**8  + int(255.*B)

set xr [0.01:1]
set yr [0.01:1]
set ur [0.01:1]
set vr [0.01:1]
set zr [0:1.065]
set xtics ("R=1" 1)
set ytics ("G=1" 1)
set ztics ("0" 0, "B=1" 1)
unset colorbox
set isosamples 40,40
set xyplane at 0.0
set view 63,58,1.,1.4

set title "RGB coloring of pm3d surface"
unset key

# Just some function that is well-defined in this range
# (except at the origin)
f(x,y) = 0.4 + sin(sqrt(100.*x**2+100.*y**2)) \
       / (1.5*sqrt(100.*x**2+100.*y**2))

splot '++' using 1:2:(f($1,$2)):(RGB($1,$2,f($1,$2))) \
       with pm3d lc rgb variable


Click here for minimal script to generate this plot




set title "HSV coloring of pm3d surface\n(V=1)"
unset xtics
unset ytics
set ztics ("0" 0)
set xlabel "H"
set ylabel "S"

splot '++' using 1:2:(f($1,$2)):(hsv2rgb($1,$2,1.0)) \
       with pm3d lc rgb variable


Click here for minimal script to generate this plot




set title "Explicit borders for pm3d tiling"
set pm3d border lt black lw 1.5
set sample 10
set isosample 10
replot


Click here for minimal script to generate this plot