Gnuplot: trailing white space - gnuplot

I've got a multiplot like this:
How do I remove the trailing white space added by the xtics interval? Relevant configurations include:
set xtics 10
set mxtics 5
Data for the xaxis goes up to somewhere between 135 and 140.
Thanks.

You have to set your xrange explicitly if the data do not end at some nice round value. One way to do this is to use the stats command (gnuplot 4.6.0) and up:
stats 'data.dat'
set xrange[STATS_min_x:STATS_max_x]
Otherwise you can set xrange manually (if you know the value), or use the old-fashioned method:
set output '/dev/null'
plot 'data.dat'
set xrange[GPVAL_DATA_X_MIN:GPVAL_DATA_X_MAX]
set output'actual_output.png'
replot

To disable the automatic extension of the autoscaled x-axis to the next tic mark use
set autoscale xfix
The general syntax is
set autoscale {<axes>{|min|max|fixmin|fixmax|fix} | fix | keepfix}

Related

Spurious '-' text with epslatex and multiplot

The following gnuplot snippet generates a multiplot showing six plots of data ported via stdin, but the special filename '-' used is also printed on the output:
set term epslatex color
set output 'mwe.tex'
set multiplot layout 3,2 scale 1,1 columnsfirst
set xrange [-3.1415:3.1415]
set yrange[-1.0:1.0]
set cbrange [-1:1]
set size ratio -1.0
set palette rgb 33,13,10
unset colorbox
plot '-' with image
-3.1416 -1.00 0.00
-3.1089 -1.00 0.00
(...)
e
(...)
unset multiplot
(The 'plot' command and what follows until and including 'e' is repeated six times with different input before the unset multiplot command.)
The output is shown here. The special filename '-' must be included in the plot command to plot inline data, but it should not be shown in the resulting plot. How to avoid this behavior?
The problem persists when using the 'standalone' term option with epslatex, but it does not show up when using other terminals.
I use gnuplot 4.6 patch 2.
According to the StackOverflow rule "no answer in the comments", here again as answer. Also check help key and the options there.
Try:
set key noautotitle
or
plot '-' with image notitle

Gnuplot script to output eps or svg - how to write?

I have the following gnuplot script:
set autoscale
unset log
unset label
set xtic auto
set ytic auto
unset title
set xlabel "Number of clusters"
set ylabel "Accuracy of classifier (%)"
plot "cluster.dat" using 1:3 title "PART" with lines, \
"cluster.dat" using 1:4 title "JRip" with lines, \
"cluster.dat" using 1:5 title "FURIA" with lines
I would like this script, when run, to output SVG or EPS - what would I need to add or modify to make this happen?
In gnuplot the output type is called terminal.
In your script, before the plot command use
set term svg
set output "output.svg"
or
set term eps
set output "output.eps"
both terminals have several options. Type help eps (on some gnuplot this is help epscairo) or help svg.
To get the list of available terminals for your build, type set terminal.

Remove redundant file names in gnuplot figure

I wrote a simple gnuplot shell script
#!/usr/bin/gnuplot
reset
set terminal png
set xlabel "Time"
set ylabel "Prime and Probe #"
plot "file.dat" with points
Notice that there is an annoying "file.dat" on the upper right corner. How can I remove that?
gnuplot Version 4.6 patchlevel 4
Use the title parameter to change the key
plot "file.dat" title "my title"
or remove it for a single plot
plot "file.dat" notitle
or remove it for all plots with
unset key

Spacing between tics in Gnuplot

I've been going crazy looking for an answer to this question. How can I set the distance between the tics on gnuplot? Currently the tics in my plot are squished together too tightly. I want them to be more spread out.
Here is an example:
I have a graph that looks like this:
100 ——
|
|
50 ——
|
|
0 ——
I want it to look like this:
50 ——
|
|
|
|
|
0 ——
Notice that there is actually one less tic in the after sample.
The distance between tics is set by set xtics or set ytics command. For example if I use the command plot sin(x)
then the space between the xtics is 5 by default. The command
set xtics -10,2,10
replot
makes the xtics appear at an interval of 2. In the above command the format is
set xtics <start>, <increment>, <end>
See help xtics inside gnuplot for details.
Hope this helps!
As suggested in another answer by andyras (Change actual space between tics in gnu plot) you can do it by controlling the size of your terminal.
I also had a problem, where I wanted the tics in the axis to have the same distance in absolute values (though I don't know the value itselft, but the grid should be quadratic in the end).
So if you want a quadratic grid/spacing of your tics, put
set terminal pdfcairo size 100, 100
For rectangular put
set terminal pdfcairo 100, 200
and so on.
Again, this is an answer suggested by andyras, not me. I took his answer, which worked for my case.

Gnuplot - Using replot with png terminal

I am trying to use replot with png terminal in Gnuplot.
If I do the following I get two plots on one graph without any problem:
plot sin(x)/x
replot sin(x)
Now if do the same for a png terminal type the resulting png file only contains the first plot.
set terminal png
set output 'file.png'
plot sin(x)/x
replot sin(x)
Am I missing something at the end to get the second plot in my png file?
This is actually a very good question, and the behavior here is terminal dependent. Some terminals (e.g. postscript) will give you a new page for each replot. You have a couple of solutions...
First Option: You can make your plot prior to setting the terminal/output and then replot again after you set the terminal/output:
plot sin(x)/x
replot sin(x)
set terminal png
set output 'file.png
replot
This option is sometimes convenient if you want to plot the same thing in multiple terminals, but I rarely use it for anything else.
Second (better) Option: You can pack multiple plots into one command separating each with a comma.
set terminal png
set output 'file.png'
plot sin(x)/x, sin(x)
I very much prefer the second way -- when in a multiplot environment, this is the only way to put multiple graphs on the same plot. If you have very long functions to plot, you can break the line with gnuplot's line continuation (\ at the end of the line -- Nothing is allowed after the \, not even whitespace)
plot sin(x)/x with lines linecolor rgb "blue" linetype 7 lineweight 4, \
sin(x), \
cos(x)

Resources