我尝试拟合使用以下方法创建的六个 pgfplotsmatlab2tikz将它们放置到子图内并拖放到页面上。
因此我的文档看起来是这样的:
\documentclass[a4paper,11pt, BCOR=12mm, DIV=8,twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\addtokomafont{caption}{\small}
\usepackage{libertine}
\usepackage{microtype}
\KOMAoptions{DIV=last}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\newlength\figureheight
\newlength\figurewidth
\setlength\figureheight{0.3\linewidth}
\setlength\figurewidth{0.4\linewidth}
\begin{document}
\begin{figure}[p]
\centering
{\footnotesize
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\input{picture1.tikz}
\end{subfigure}~
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\label{sfig:window1}
\input{picture2.tikz}
\end{subfigure}
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\input{picture3.tikz}
\end{subfigure}~
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\input{picture4.tikz}
\end{subfigure}
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\input{picture5.tikz}
\end{subfigure}~
\begin{subfigure}[b]{0.5\linewidth}
\subcaption{}
\input{picture6.tikz}
\end{subfigure}
}% footnotesize
\caption{This is just a caption long enough to cause a linebreak and it is clear how wide it is.}
\end{figure}
\end{document}
(我包含了诸如此类的内容BCOR
,twoside
因为libertine
我理想中正在寻找一种能够根据改变的字体(大小)和页面布局自动调整图表的大小和位置的解决方案。)
这导致以下输出:
可以看出,由于图的 $y$ 刻度长度不同,框未正确对齐。此外,我希望图尽可能大(在合理良好的页面布局范围内)。我真的不知道如何正确选择宽度,subfigures
以便它们与宽度相匹配\figurewidth
(\figureheight
也是相当随意选择的)。我正在寻找一种(理想情况下是自动的)方法来正确放置图中的图,即框应对齐,并且最有效地利用可用空间。
图片可以在这里找到: 图片1.tikz, 图片2.tikz, 图片3.tikz, 图片4.tikz, 图片5.tikz, 图片6.tikz。
答案1
问题是由轴描述引起的,因此一种可能性是使用trim axis right
、trim axis left
选项来修剪轴;只需在、、...tikzpicture
中的每个环境都以以下内容开始:picture1.tikz
picture2.tikz
picture6.tikz
\begin{tikzpicture}[trim axis right,trim axis left]
此外,由于y
第五幅图像的轴值,其高度将比其他图像略小,因此我认为如果子标题标签位于子图下方,您的子图看起来会更好。我使用 的可选参数在每行之间添加了一些垂直间距\\
,如\\[<length>]
。
恐怕宽度和高度再次通过反复试验来设置;但是,请注意,subfigure
使用相同的长度(\figurewidth
)设置绘图和环境的宽度,如果需要,可以快速更新适当的宽度。因此,这些微调调整最好留给文档的最终版本。
生成的代码:
\documentclass[a4paper,11pt, BCOR=12mm, DIV=8,twoside]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\addtokomafont{caption}{\small}
\usepackage{libertine}
\usepackage{microtype}
\KOMAoptions{DIV=last}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\newlength\figureheight
\newlength\figurewidth
\setlength\figureheight{4.5cm}
\setlength\figurewidth{.4\linewidth}
\begin{document}
\begin{figure}[p]
\captionsetup[subfigure]{skip=-2pt}
\centering
\begin{subfigure}[b]{\figurewidth}
\input{picture1.tikz}
\caption{}
\end{subfigure}\hfill
\begin{subfigure}[b]{\figurewidth}
\input{picture2.tikz}
\caption{}
\label{sfig:window1}
\end{subfigure}\\[1em]
\begin{subfigure}[b]{\figurewidth}
\input{picture3.tikz}
\caption{}
\end{subfigure}\hfill
\begin{subfigure}[b]{\figurewidth}
\input{picture4.tikz}
\caption{}
\end{subfigure}\\[1em]
\begin{subfigure}[b]{\figurewidth}
\input{picture5.tikz}
\caption{}
\end{subfigure}\hfill
\begin{subfigure}[b]{\figurewidth}
\input{picture6.tikz}
\caption{}
\end{subfigure}
\caption{This is just a caption long enough to cause a linebreak and it is clear how wide it is.}
\end{figure}
\end{document}
结果图像: