gnuplot / postproc (E)

After Plotting (No.1)

I want to put a figure in my TeX document.

Gnuplot has a latex terminal which is capable of generating a
PicTeX graph. This terminal, however, tends to makes a lot of data
points to show a graph, and sometimes you cannot process it with the
TeX system because a computer memory is not enough. An easy way to
include your graph into the TeX document, make the graph in an EPS
format and use the LaTeX graphics (graphicx) package.

Firstly, make a figure with gnuplot, and use the enhanced EPS terminal to
make an EPS file.

gnuplot> set term postscript eps enhanced
gnuplot> set output "test.eps"
gnuplot> set key left top
gnuplot> set size 0.5,0.5
gnuplot> set xrange [0:4]
gnuplot> set yrange [0:4]
gnuplot> set xlabel "Energy [MeV]"
gnuplot> set ylabel "Cross Section [b]"
gnuplot> set linestyle 1 lt 1
gnuplot> set linestyle 2 lt 1 pt 7
gnuplot> # for gnuplot ver.4
gnuplot> # set style line 1 lt 1
gnuplot> # set style line 2 lt 1 pt 7
gnuplot> plot 0.2536*x+1.1717      title "LESQ fit" 
>                                  with lines      linestyle 1,
>             "test.dat" usi 1:2:3 title "data" 
>                                  with yerrorbars linestyle 2

fig/sample8.1a

If you don’t change the figure size, letters in the generated EPS
become too small in comparison with the graph. To make them larger,
use the set term option to
specify the larger font, or use the set size
command to make the whole figure smaller, just like
the example above. The font size is the same even you change the size
of figure, so that the letters become larger relative to the
graph.

When symbols in your figure have error bars, the PostScript driver
draws the bars with the specified line type. If those are not the
number 1 (solid line), gnuplot the error bars with draws dotted or
dashed lines. To avoid this, use linestyle to set the
linetype lt=1 and change the symbol number
pt
.


To paste a graph in your TeX(LaTeX2e) document, use graphics
package. includegraphics{ EPS file } command
inserts the figure at that location. The EPS file name is specified
at EPS file. If you want to chance the figure size, use
resizebox{X size}{Y size}
command, which
enlarges or shrinks the figure size. If you want to keep the aspect
ratio, put “!” into the X or Y size. In the next example, a figure
is inserted into the figure environment, a caption is given, and
the figure width is set to 120mm.

documentclass{article}
usepackage{graphics}
begin{document}
begin{figure}
begin{center}
resizebox{120mm}{!}{includegraphics{test.eps}}
caption{This is a sample figure.}
label{test}
end{center}
end{figure}
end{document}
fig/sample8.1b
up

I want to merge several figures into one figure.

There are several ways to merge some figures, for example, use
multiplot, combine EPS figures into one drawing. Maybe the simplest
way to do is to use a LaTeX tabular environment, and arrange the EPS
figures.

When you have 4 figures, and those are aligned into 2×2 matrix.
The Y label appears only the left figures, while the lower figures
have X label. In addition, a caption is given for 4 drawings, namely
those 4 plots are regarded as one figure.

Firstly, those 4 figures are prepared by 4 different EPS files.
At that time, all figures should be in the
same size.
As an example, here shows the graphs of
y=sin(x), cos(x), sin(2x), and cos(2x).

gnuplot> set term postscript eps enhanced
gnuplot> set lmargin 5
gnuplot> set bmargin 3
gnuplot> set rmargin 2
gnuplot> set tmargin 2
gnuplot> set size 0.5,0.5
gnuplot> set xrange [0:2*pi]
gnuplot> set yrange [-1:1]

gnuplot> set output "test1.eps"
gnuplot> set xlabel ""
gnuplot> set ylabel "sin x"
gnuplot> plot sin(x) notitle

gnuplot> set output "test2.eps"
gnuplot> set xlabel ""
gnuplot> set ylabel ""
gnuplot> plot sin(2*x) notitle

gnuplot> set output "test3.eps"
gnuplot> set xlabel "X [nodim.]"
gnuplot> set ylabel "cos x"
gnuplot> plot cos(x) notitle

gnuplot> set output "test4.eps"
gnuplot> set xlabel "X [nodim.]"
gnuplot> set ylabel ""
gnuplot> plot cos(2*x) notitle

Those EPS figures are inserted into the tabular environment,
and aligned.

documentclass{article}
usepackage{graphics}
begin{document}
begin{figure}
begin{center}
begin{tabular}{cc}
resizebox{60mm}{!}{includegraphics{test1.eps}} &
resizebox{60mm}{!}{includegraphics{test2.eps}} \
resizebox{60mm}{!}{includegraphics{test3.eps}} &
resizebox{60mm}{!}{includegraphics{test4.eps}} \
end{tabular}
caption{This is sample figures.}
label{test4}
end{center}
end{figure}
end{document}
fig/sample8.2b

If you want to make one PS file which contains several figures,
use the tabular environment (not table float), and cut off with
the dvips command line option -pp . With the -E option, you can make
another EPS file which contains several figures. See the manual of divps.

Of course the same thing you can do with a drawing tools
like Tgif or commercial softwares.

up