Criando um diagrama através do gnuplot e depois colocando-o no LaTeX

Criando um diagrama através do gnuplot e depois colocando-o no LaTeX

Sinceramente, estou perdido. Sinceramente, tentei usar o gnuplot e o LaTeX juntos, mas nunca pareceu dar nada desejável. Eu tenho o 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

e o pacote mínimo

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

e eu recebo algo que parece

insira a descrição da imagem aqui

O que está tudo bem. Mas as linhas são muito granuladas, também preciso do eixo x com metade do tamanho e "definir tamanho 0,5,1" não parece estar funcionando. Infelizmente não posso colocar os arquivos de texto que contêm os pontos de dados aqui, mas haveria uma solução melhor (e facilmente compreensível, o prazo para este projeto é muito em breve) para poder traçar um gráfico de contorno monocromático de pontos de dados em LaTeX, como o da foto?

Responder1

A latexopção do terminal parece escrever muitos pontos individuais da plotagem no psi.texarquivo, desconsiderando a conexão (matemática) entre eles, ou mais curto, o resultado não é um formato gráfico vetorial. Isso leva a imagens granuladas, especialmente se forem dimensionadas. Aumentar o isosamplesirá fornecer melhores arquivos gráficos se aplicado em conjunto com um melhor aumento samples, mas isso não é uma opção se um arquivo de dados for plotado em vez de uma função.

Minha 'solução' usa uma função, pois os arquivos do script gnuplot não estão disponíveis para mim.

Eu sugeriria usar os terminais postscriptou 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

Aí vem o 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}

Saída do terminal de látex Gnuplot

insira a descrição da imagem aqui

Saída do terminal postscript do Gnuplot

insira a descrição da imagem aqui

Responder2

O epslatexterminal émuitomelhor que esse latex, e você ainda pode manter a consistência com as fontes do documento principal, que você perderia ao usar outros terminais como pdfou postscript. Sinceramente, não consigo pensar em nenhum motivo para usar latexem vez de epslatex.

Por exemplo, com 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

você pode obter a seguinte imagem

insira a descrição da imagem aqui

Se quiser definir a relação entre os eixos, use a size ratioopção. Por exemplo, com

set size ratio 2

o eixo y é o dobro do eixo x. Caso queira que todo o tamanho “x” do gráfico seja dividido pela metade, defina o tamanho da figura inteira nas terminalopções lembrando que o tamanho padrão é 5×3,5 polegadas². Por exemplo, o código a seguir define o tamanho da imagem como 2,5×3,5 polegadas²

set terminal epslatex size 2.5,3.5

informação relacionada