Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I have not found a way to solve this using the <code>grid</code> and <code>border</code>. However, there is a relatively simple workaround, which is useful only if you do not change your ranges every time you plot your data.</p> <p>Basically you plot a constant surfaces on the back walls matching the line type and number and position of the grid lines in the x-y plane.</p> <p>First, set up the ranges. I labeled them, because we will need the numbers later.</p> <pre><code>xmin=0 ; xmax = 100 ymin=0.01 ; ymax=1000 zmin=0 ; zmax=990 set xrange [xmin:xmax] set yrange [ymin:ymax] set zrange [zmin:zmax] </code></pre> <p>Setting the z axis intersection with x-y plane (ticslevel) and I guessed a view angle to visually match your example. We want to set these before <code>multiplot</code>.</p> <pre><code>set ticslevel 0.0 set view 60,45,1 </code></pre> <p>Now comes the fun. For this part you have to know the number of grid lines in your x-y plane (same as number of major tics on x and y axes). We will plot the back grid walls first, so they are behind your data/function at the end. Also, I switch off the grid and border for this part, but they should exactly overlap if you leave them in.</p> <pre><code>set multiplot unset grid set border 0 </code></pre> <p>Even though the y-axis has logarithmic scale, the grid is separated linearly (equidistant grid lines). So at this point I want linear scale on y axis. (If you <code>set logscale y</code> before this point, comment it out.) I don't want linear labels on the y-axis, because they are different on logarithmic scale, so I set the format accordingly.</p> <pre><code>set format y "" set isosamples 6,9 # - set this to number of tics on y-axis,z-axis </code></pre> <p>Here is the only manual setting that might change when you plot on a different range. You need to set the numbers of <code>isosamples</code> to the numbers of tics on y-axis,z-axis.</p> <p>To control how many lines gnuplot is going to use for each surface, we need to set both the isosamples (done above) and the ranges of dummy variables <code>u,v</code>. Notice the line type 0, which is the grid line type. I plot my first wall at x = xmin:</p> <pre><code>set parametric set urange [ymax:ymin] set vrange [zmax:zmin] splot xmin,u,v w lines lt 0 </code></pre> <p>Similarly, we do the other wall at y = ymax.</p> <pre><code>set urange [xmin:xmax] set vrange [zmin:zmax] splot u,ymax,v w lines lt 0 unset parametric </code></pre> <p>Now that I have the walls, I can plot what you already have in the picture. Setting borders, tics, re-enable the y-axis label we disabled before, set the log-scale on y axis (now is a good time) and reset isosamples to the default values. </p> <pre><code>set xtics mirror set ytics mirror set ztics mirror set grid ytics xtics back set logscale y set format y " %g" set isosamples 10,10 </code></pre> <p>And plot your data/function as you are used to.</p> <pre><code>splot 'data.txt' w lines unset multiplot </code></pre> <p>And we are done....</p> <p>Possible necessary modification:<br> I guess your x and y axes will be different from mine, since the reverse is easily achievable by something like <code>view 60,135,1</code>. This also switches x and y though. Your surfaces will then change coordinates.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload