使用Matlab2tikz
我生成了一个包含 104 个以非常特定方式排列的子图的文件。然后我插入\pgfplotsset{yticklabel style={text width=2em,align=right},}
、编译并获得了最终的 PDF,效果很好,只是子图的排列仍然不令人满意:
我正在尝试更好地组织子图,以便:
- 会有相同的垂直间距,
ylabels
每个子图仅限两个
是否有可能做到这一点,而不必修改每一个addplot
?
更新:
使用斯蒂芬·平诺,我注意到顺序仍然错误。这是因为生成的 *.tikz 文件从底行的第二个子图(从左边开始)开始,并相对于它定位在后面的子图上。这当然使得使用groupplot
完全错误。因此,我认为我有义务坚持axis
环境中,并发挥其作用yticklabels
以提高间距。
知道如何自动修复yticklabels
每个子图的三个吗?
答案1
- 我认为实现这一点的最简单(一致)的方法是使用
groupplots
库(看看PGFPlots 手册第 5.8 节第 428 页(v1.13 版)。 - 由于你没有具体说明什么您需要“两个 ylabel”,我建议使用 和 键
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}