
Я использую matlab2tikz для генерации кода pgfplots .tex для создания рисунка с помощью pdflatex. Функция matlab, которую я использую для создания рисунка, создает каждую из меток его делений явно, так что их можно масштабировать и вращать с помощью следующего кода matlab:
text(x(k),y(k),labs{k},'horizontalalignment',horizk,...
'verticalalignment',vertk, ...
'rotation',rotang(k), ...
'fontsize',gfontsize*scl(k), ...
'color',gcolor, ...
'tag','m_grid_xticklabel', ...
'fontname',gfontname);
Когда я исследую преобразованный .tex-код, я вижу следующее:
\node[below, inner sep=0mm, rotate=359.994889043193, text=black]
at (axis cs:-8.79858922562881e-07, -4.84813663392814e-06,0) {$\text{ 81}^\text{o}\text{W }$};
представляет собой одиночную метку деления. Текстовая строка, для которой эта строка кодирует, однако, не появляется в результирующем .pdf, предположительно, потому что конкретные координаты лежат за пределами диапазонов осей. Чтобы проверить это, я заменил координаты в диапазоне, скомпилировал и увидел, что метка или текст затем стали видимыми.
Интересно, что если я создам фигуру в Matlab с помощью команды view, например
view(45,45)
Я вижу текстовые строки, представляющие метки осей, но выравнивание нарушено. В частности, строки, похоже, имеют значение y, которое помещает их намного выше на рисунке, чем я ожидал. Я думаю, что выравнивание x в порядке.
Решения, как я их вижу, могут находиться либо на стороне matlab, либо на стороне pgfplots/tikz. В идеале решение будет состоять из короткого фрагмента кода, который будет включен в преамбулу или при настройке меток осей. Этот код позволит создать текст с помощью конструкции:
\node[<options>] at (axis cs:x,y,z) {<text>};
для отображения независимо от того, были ли координаты x, y, z в пределах диапазона. Если предложения не обязательно приходят легко, я могу создать mwe.
решение1
Добавление clip=false
параметров axis
среды переопределит pgfplots
поведение по умолчанию, при котором все, что появляется за пределами ограничивающей рамки оси, обрезается.
В зависимости от другого сгенерированного кода это может иметь другие побочные эффекты, но в большинстве случаев все будет в порядке.
Эту настройку ключа можно добавить в сгенерированный код с помощью matlab2tikz
средства EXTRAAXISOPTIONS
. Перед вызовом matlab2tex
добавьте
EXTRAAXISOPTIONS = {'clip=false'};
чтобы добавить эту опцию в сгенерированный код.