GNUPlot puede trabajar tanto de forma interactiva como no interactiva, por lo que se puede invocar desde un shell script.
Un ejemplo sencillo.
Supongamos que tenemos tres ficheros, con dos columnas cada uno de datos numéricos separados por espacios en blanco (espacios, tabuladores, ...). Estos ficheros se pueden dibujar utilizando GNUPlot de forma tanto interactiva como no interactiva.
De manera interactiva
Abrimos GNUPlot en un terminal, escribiendo gnuplot y nos mostrará el modo interactivo. En el podemos representar los ficheros de forma rápida utilizando la orden plot.
plot ’fichero1.txt’ u 1:2, ’fichero2.txt’ u 1:2, ’fichero3.txt’ u 1:2
De manera no interactiva
En la terminal escribimos la siguiente orden para pintar los ficheros:
echo \
"plot ’fichero1.txt’ u 3:4, ’fichero2.txt’ u 3:4, ’fichero3.txt’ u 3:4" |
gnuplot -persist
La u es la abreviatura de la palabra reservada using y los números a continuación son el rango de columnas en el fichero que se van a representar.
Parámetros más comunes.
Utilizar una escala logarítmica.
set autoscale
set title 'Tasa de error en función del nº de estados.'
set xlabel "Estados"
set ylabel "%Error"
set logscale x
set logscale y
set xrange [0.9:280]
set yrange [0.9:104]
set xtics ("1" 1, "2" 2, "4" 4, "8" 8, "16" 16, "32" 32, "64" 64, "128" 128, "256" 256)
set ytics ("1" 1, "2" 2, "3" 3, "4" 4, "5" 5, "10" 10, "20" 20, "30" 30, "40" 40, "50" 50, "100" 100)
plot "salida_codeword4" using 1:2 title 'Codewords = 4' with linespoints, \
"salida_codeword16" using 1:2 title ' 16' with linespoints, \
"salida_codeword64" using 1:2 title ' 64' with linespoints, \
"salida_codeword256" using 1:2 title ' 256' with linespoints
Generando la siguiente gráfica:
Utilizar LaTeX para pintar la gráfica.
GNUPlot puede generar un fichero con la información de la gráfica para LaTeX. Este fichero es importado en un documento de LaTeX que es quién realiza el dibujado. Para que genera un fichero en LaTeX hay que utilizar la orden:
set output "fichero_latex.tex"
Un ejemplo de uso, en el que se pinta la función seno escrita en notación polaca inversa.
set terminal latex
set output "gnueg.tex"
set title "This is a plot of $y=\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "\\rotatebox{90}{This is the $y$ axis}"
plot [0:2*pi] [-1.2:1.2] sin(x) title "Sinus"
set output "egpltl.tex"
replot
Para importarla en LaTeX, se podría hacer de la siguiente manera:
\begin{figure}[ht]
\centering
\scalebox{0.8}{\input{egpltl.tex}}
\caption{Funció generada per {\sf GNUPLOT}.}\label{egplt1}
\end{figure}
como se ponen acentos en la terminal epslatex??
ResponderEliminarPuedes escapar los acentos con la barrra invertida y el caracter '.
ResponderEliminarPor ejemplo: Presentaci\'on