子图内不同宽度的几个 pgfplots 的对齐

子图内不同宽度的几个 pgfplots 的对齐

我尝试拟合使用以下方法创建的六个 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}

(我包含了诸如此类的内容BCORtwoside因为libertine我理想中正在寻找一种能够根据改变的字体(大小)和页面布局自动调整图表的大小和位置的解决方案。)

这导致以下输出:

在此处输入图片描述

可以看出,由于图的 $y$ 刻度长度不同,框未正确对齐。此外,我希望图尽可能大(在合理良好的页面布局范围内)。我真的不知道如何正确选择宽度,subfigures以便它们与宽度相匹配\figurewidth\figureheight也是相当随意选择的)。我正在寻找一种(理想情况下是自动的)方法来正确放置图中的图,即框应对齐,并且最有效地利用可用空间。

图片可以在这里找到: 图片1.tikz图片2.tikz图片3.tikz图片4.tikz图片5.tikz图片6.tikz

答案1

问题是由轴描述引起的,因此一种可能性是使用trim axis righttrim axis left选项来修剪轴;只需在、、...tikzpicture中的每个环境都以以下内容开始:picture1.tikzpicture2.tikzpicture6.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}

结果图像:

在此处输入图片描述

相关内容