
Ich bin ehrlich gesagt ratlos. Ich habe ehrlich versucht, Gnuplot und LaTeX zusammen zu verwenden, aber es scheint nie etwas Erstrebenswertes zu ergeben. Ich habe den Gnuplot-Code;
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
und das Minimalpaket
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\input{psi.tex}
\end{document}
und ich bekomme etwas, das aussieht wie
Das ist irgendwie okay. Aber die Linien sind sehr körnig, ich brauche auch die halbe X-Achsengröße und „Größe auf 0,5,1 setzen“ scheint nicht zu funktionieren. Leider kann ich die Textdateien, die die Datenpunkte enthalten, nicht hier ablegen, aber gäbe es eine bessere (und leicht verständliche, die Deadline für dieses Projekt ist sehr bald) Möglichkeit, ein monochromatisches Konturdiagramm der Datenpunkte in LaTeX zu zeichnen, wie das auf dem Bild?
Antwort1
Die latex
Terminaloption scheint viele einzelne Plotpunkte in die psi.tex
Datei zu schreiben, ohne den (mathematischen) Zusammenhang zwischen ihnen zu berücksichtigen, oder, kürzer gesagt, das Ergebnis ist kein Vektorgrafikformat. Dies führt zu körnigen Bildern, insbesondere bei Skalierung. Eine Erhöhung von isosamples
liefert bessere Grafikdateien, wenn sie in Verbindung mit „besser erhöht“ angewendet wird samples
, aber dies ist keine Option, wenn eine Datendatei statt einer Funktion geplottet wird.
Meine „Lösung“ verwendet eine Funktion, da mir die Dateien im Gnuplot-Skript nicht zur Verfügung stehen.
Ich würde vorschlagen, die Terminals postscript
oder zu verwenden 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
Hier kommt der LaTeX
Code
\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}
Gnuplot Latex-Terminalausgabe
Gnuplot-Postscript-Terminalausgabe
Antwort2
Das epslatex
Terminal istvielbesser als das latex
eine, und Sie können immer noch die Konsistenz mit den Schriftarten des Hauptdokuments wahren, die Sie verlieren würden, wenn Sie andere Terminals wie pdf
oder verwenden postscript
. Mir fällt ehrlich gesagt kein einziger Grund ein, latex
anstelle von zu verwenden epslatex
.
Zum Beispiel mit diesem Code
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
Sie können das folgende Bild erhalten
Wenn Sie das Verhältnis zwischen den Achsen festlegen möchten, verwenden Sie die size ratio
Option. Zum Beispiel mit
set size ratio 2
die y-Achse ist doppelt so groß wie die x-Achse. Wenn Sie die gesamte „x“-Größe des Diagramms halbieren möchten, legen Sie die Größe der gesamten Abbildung in terminal
den Optionen fest. Beachten Sie dabei, dass die Standardgröße 5×3,5 Zoll² beträgt. Der folgende Code legt beispielsweise die Größe des Bilds auf 2,5×3,5 Zoll² fest.
set terminal epslatex size 2.5,3.5