Gnuplot: How to plot a 2d colorplot of a 3d function

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 5K views
DerBaer
Messages
4
Reaction score
0
Hello,

I have a data file created by an C++ Programm which creates the lines of the data file by an operation inside an loop
Code:
data3dRnd << gsl_vector_get(x,0) << '    ' << gsl_vector_get(x,1) << '    ' << my_f(x,par) << endl << endl;

where the entries of the gsl_vector x are doubles and my_f(x,par) is a double depending on x.

I would like to produce a colour plot with x1 and x2 on the axes and show my_f(x,par) via the color of plot. There are some points x where my_f(x,par) produces an Ignore value (1e+300 in this case) and I don't want data points to be plotted which lead to my_f = Ignore value.
In a 2D plot of my_f over sqrt(x1^2+x2^2) I achieve this with
Code:
 using 1:($2 < 1e+300 ? $2 : 1/0)
How can I achieve this? At first there was only one << endl in my code, but that gave me the error that i need more then one Isoline. So I entered the second << endl as the Isolines are sperated by a blank line.

My current Gnuplot Scrit is

Code:
set terminal eps enhancedset output "VEffCont.eps"
set view map
set isosamples 100, 100
unset surface
set style data pm3d
set style function pm3d
set ticslevel 0
set title "Random v1 - v2 - Distribution"
set xlabel "v1 [GeV]"
set ylabel "v2 [GeV]"
set pm3d implicit at b
set palette cubehelix
splot "./3dRnd.dat" u 1:2:3 w pm3d

This produces a grid with the correct ranges of x and y axes and a colour scale for my_f but with nothing in the plot window as shown in the attached pdf.

Thanks in advance.
 

Attachments

Physics news on Phys.org
These commands:set pm3d explicit at b
set pm3d scansautomatic
set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB
set palette rgbformulae 7, 5, 15
set colorbox default
set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
set loadpath
set fontpath
set fit noerrorvariables
GNUTERM = "wxt"
set title "29aprd1 Spectrogram"
se zra [-5:5]
splot "29aprd1.tfm" using ($3+ 0.01):1:(log10($2))
set out "29aprd1tfm.png"
set term png transparent truecolor enhanced
rep
set out
set term wxt
# EOFProduced the output in Figure 3 here: http://www.btgresearch.org/AcousticReconstruction02042012.pdf
 
Thanks Dr. Courtney,

A Member on the Gnuplot Google Help Group suggested this

set dgrid3d # create a regularized grid from your "data"
set view map # 2D projection
splot dataf us 1:2:($3<1e299?$3:NaN) w pm3d # z-coloured

and this worked quite fine for my dataset.