
Используя Matlab2tikz
я сгенерировал файл, содержащий 104 подсюжета, выровненных очень определенным образом. Затем я вставил \pgfplotsset{yticklabel style={text width=2em,align=right},}
, скомпилировал и получил окончательный PDF, который был хорош, за исключением того, что расположение подсюжетов все еще неудовлетворительно:
Я пытаюсь лучше организовать подсюжеты следующим образом:
- будет такой же вертикальный интервал,
- Только два
ylabels
на подсюжет
Есть ли возможность сделать это, не изменяя каждый файл addplot
?
Обновлять:
Используя решение, предложенноеСтефан Пиннов, я заметил, что порядок все еще неправильный. Это потому, что сгенерированный файл *.tikz начинался со второго подграфика (слева) в нижнем ряду и позиционировал следующие подграфики относительно него. Это, конечно, сделало полученную фигуру с использованиемgroupplot
совершенно неправильно. Поэтому я считаю, что обязан придерживатьсяaxis
окружающей среды, и играйте на , yticklabels
чтобы улучшить интервал.
Есть идеи, как автоматически исправить по три yticklabels
на подсюжет?
решение1
- Я думаю, что самый простой (последовательный) способ реализовать это — использовать библиотеку
groupplots
(посмотрите нараздел 5.8 руководства PGFPlots на стр. 428 и далее (в версии 1.13). - Поскольку вы не указали точночто"two ylabels" вам нужны, я предлагаю немного поиграть с клавишами
max space between ticks
иtry min ticks
. Другие интересные клавиши могут бытьytick
(в сочетании сytick distance
) илиyticklabels from table
. Все эти клавиши могут быть заданы как необязательные аргументы команды\nextgroupplot
напрямую или - в случае, если они должны повторяться - как стили, которые вы можете определить в преамбуле.
Ниже приведен действительно простой пример для groupplot
окружающей среды.
\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
tiny,
/tikz/mark size=1.5pt,
group style={
group name=my plots,
group size=2 by 2,
horizontal sep=4mm, % <-- default: 1cm
vertical sep=2mm, % <-- default: 1cm
xticklabels at=edge bottom,
},
width=3cm,
height=3cm,
]
\nextgroupplot[group/empty plot]
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\end{groupplot}
\end{tikzpicture}
\end{document}