Crear un diagrama a través de gnuplot y luego ponerlo en LaTeX

Crear un diagrama a través de gnuplot y luego ponerlo en LaTeX

Honestamente estoy perdido. Honestamente, intenté usar gnuplot y LaTeX juntos, pero nunca parece dar nada deseable. Tengo el código gnuplot;

reset

set lmargin at screen 0.2;
set rmargin at screen 0.977;
set tmargin at screen 0.96;
set bmargin at screen 0.13;

# Define colour range to be consistent amongst plots
set cbrange [lowcol:highcol];


set terminal latex
set out 'psi.tex'
set termoption dash

#set title istitle;
set xlabel '$x/a$';
set ylabel '$y/a$' offset 1.7;
set contour;
set view map;
unset surface;
set cntrparam levels 8;
set isosamples 50;
unset key
unset colorbox
splot 'loop_bottom.txt' w l notitle,'loop_top.txt' w l notitle

y el paquete mínimo

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\input{psi.tex}
\end{document}

y me sale algo que se parece

ingrese la descripción de la imagen aquí

Lo cual está bastante bien. Pero las líneas son muy granuladas, también necesito que el eje x tenga la mitad del tamaño y "establecer tamaño 0.5,1" no parece funcionar. Desafortunadamente no puedo poner los archivos de texto que contienen los puntos de datos aquí, pero ¿habría una mejor (y fácilmente comprensible, la fecha límite para este proyecto es muy pronto) poder trazar un gráfico de contorno monocromático de puntos de datos en ¿LaTeX, como el de la imagen?

Respuesta1

La latexopción de terminal parece escribir muchos puntos de la trama individuales en el psi.texarchivo, sin tener en cuenta la conexión (matemática) entre ellos, o en resumen, el resultado no es un formato de gráfico vectorial. Esto da lugar a imágenes granuladas, especialmente si se escalan. Aumentar isosamplesproporcionará mejores archivos gráficos si se aplica junto con un mejor aumento samples, pero esta no es una opción si se traza un archivo de datos en lugar de una función.

Mi 'solución' utiliza una función, ya que los archivos del script gnuplot no están disponibles para mí.

Sugeriría usar los terminales postscripto pdf.

reset

set lmargin at screen 0.2;
set rmargin at screen 0.977;
set tmargin at screen 0.96;
set bmargin at screen 0.13;

# Define colour range to be consistent amongst plots
# set cbrange [lowcol:highcol];



#set title istitle;
set xlabel '$x/a$';
set ylabel '$y/a$' offset 1.7;
set contour;
set view map;
unset surface;
set cntrparam levels 8;
set isosamples 200;
unset key
unset colorbox
splot sin(x*y)   
# Commented out since data file `loop_*.txt' not available
#splot 'loop_bottom.txt' w l notitle,'loop_top.txt' w l notitle

set terminal push

set terminal latex 
set out 'psi.tex'
set termoption dash
replot
set out

set terminal postscript enhanced colour
set output 'psi.eps'
replot
set out

set terminal pdf colour
set output 'psi.pdf'
replot
set out

set terminal pop

Aquí viene el LaTeXcódigo

\documentclass{article}
\usepackage{graphicx}
% Perhaps necessary, depending on plot symbols
\usepackage{latexsym}
\begin{document}

\input{psi}

\includegraphics[scale=0.5,angle=-90]{psi.eps}

\includegraphics{psi.pdf}


\end{document}

Salida del terminal de látex de Gnuplot

ingrese la descripción de la imagen aquí

Salida del terminal posdata de Gnuplot

ingrese la descripción de la imagen aquí

Respuesta2

La epslatexterminal esmuchomejor que el latexanterior, y aún puedes mantener la coherencia con las fuentes del documento principal, que perderías al usar otros terminales como pdfo postscript. Sinceramente, no se me ocurre ninguna razón para utilizarlo latexen lugar de epslatex.

Por ejemplo, con este código

reset
set terminal epslatex
set output 'foo.tex'

set xlabel '$x/a$'
set ylabel '$y/a$' offset -1,0
set contour
set view map
unset surface
set cntrparam levels 31
set isosamples 200
unset key
unset colorbox

splot x**2-y**2
set output

puedes obtener la siguiente imagen

ingrese la descripción de la imagen aquí

Si desea establecer la relación entre los ejes, utilice la size ratioopción. Por ejemplo, con

set size ratio 2

el eje y es el doble del eje x. Si desea que todo el tamaño "x" del gráfico se reduzca a la mitad, establezca el tamaño de toda la figura en terminallas opciones y recuerde que el tamaño predeterminado es 5×3,5 pulgadas². Por ejemplo, el siguiente código establece el tamaño de la imagen en 2,5×3,5 pulgadas²

set terminal epslatex size 2.5,3.5

información relacionada