
Я честно говоря в растерянности. Я честно пытался использовать gnuplot и LaTeX вместе, но это никогда не давало ничего желаемого. У меня есть код 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
и минимальный пакет
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\input{psi.tex}
\end{document}
и я получаю что-то похожее на
Что, в общем-то, нормально. Но линии очень зернистые, мне также нужна ось x в два раза меньше, а "установить размер 0.5,1" не работает. К сожалению, я не могу выложить здесь текстовые файлы, содержащие точки данных, но не будет ли лучше (и понятнее, ведь дедлайн этого проекта уже совсем скоро) построить монохромный контурный график точек данных в LaTeX, как на картинке?
решение1
Терминальная latex
опция, похоже, записывает в файл множество отдельных точек графика psi.tex
, игнорируя (математическую) связь между ними, или, короче говоря, результат не является векторным графическим форматом. Это приводит к зернистым изображениям, особенно если они масштабированы. Увеличение isosamples
даст лучшие графические файлы, если применяется в сочетании с better increased samples
, но это не вариант, если вместо функции строится файл данных.
Мое «решение» использует функцию, поскольку файлы в скрипте gnuplot мне недоступны.
Я бы посоветовал использовать терминалы postscript
или 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
Вот LaTeX
код
\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
Вывод терминала Gnuplot postscript
решение2
Терминал epslatex
- этомноголучше, чем latex
один, и вы все еще можете сохранить согласованность со шрифтами основного документа, которую вы бы потеряли при использовании других терминалов, таких как pdf
или postscript
. Я, честно говоря, не могу придумать ни одной причины использовать latex
вместо epslatex
.
Например, с этим кодом
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
вы можете получить следующее изображение
Если вы хотите задать соотношение между осями, используйте опцию size ratio
. Например, с помощью
set size ratio 2
ось y в два раза больше оси x. Если вы хотите, чтобы весь размер "x" графика был уменьшен вдвое, задайте размер всей фигуры в terminal
параметрах, помня, что размер по умолчанию составляет 5×3,5 дюйма². Например, следующий код задает размер изображения 2,5×3,5 дюйма²
set terminal epslatex size 2.5,3.5