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

Click For Summary
To create a 2D color plot of a 3D function in Gnuplot, the user needs to handle cases where the function produces an "Ignore" value (1e+300). The solution involves using the command `splot dataf using 1:2:($3<1e299?$3:NaN) with pm3d` to exclude these values from the plot. The user initially faced issues with the plot not displaying correctly, which was resolved by ensuring the data file was formatted properly with blank lines separating isolines. Additional Gnuplot commands were suggested to create a regularized grid and adjust the view for better visualization. This approach successfully generated the desired color plot for the dataset.
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

Technology 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.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

Replies
3
Views
7K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 5 ·
Replies
5
Views
10K
  • · Replies 1 ·
Replies
1
Views
4K
Replies
5
Views
13K
Replies
4
Views
5K
  • · Replies 7 ·
Replies
7
Views
6K
Replies
1
Views
554
  • · Replies 1 ·
Replies
1
Views
3K