Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Jul 14, 2015 #1

    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 (C):
    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 (Text):
     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 (Text):
    set terminal eps enhanced

    set 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.

    Attached Files:

  2. jcsd
  3. Jul 14, 2015 #2
    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
    set out
    set term wxt
    # EOF

    Produced the output in Figure 3 here: http://www.btgresearch.org/AcousticReconstruction02042012.pdf
  4. Jul 15, 2015 #3
    Thanks Dr. Courtney,

    A Member on the Gnuplot Google Help Group suggested this

    and this worked quite fine for my dataset.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook