Создание диаграммы с помощью gnuplot и ее последующее размещение в LaTeX

Создание диаграммы с помощью gnuplot и ее последующее размещение в LaTeX

Я честно говоря в растерянности. Я честно пытался использовать 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

Связанный контент