使用 pgfplots 和 includestandalone 生成的图形大小不一样,即使缩放比例相同

使用 pgfplots 和 includestandalone 生成的图形大小不一样,即使缩放比例相同

在我的项目中,我有几个显示数据的图表/图形。我得到的要求是在主文档的文本和所有图形中使用相同的字体。因此,我决定使用 pgfplots/tikz 来绘制我的图表,但遇到了几个问题。

当包含两个以相同方式生成(见下文)并使用相同宽度的图形时,它们的高度不相等(如下图所示)。这是为什么?我如何才能强制它们的大小(高度和宽度)相等?

为了演示这个问题,我在下面创建了一个小型 MWE。它使用三个文件,、main.texsub.texsub2.texmain.tex:

\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{file1.dat}
    x y
    0 0
    1 1
    2 2
    3 3
    4 4
    5 5
\end{filecontents*}
\begin{filecontents*}{file2.dat}
    x y
    0 0
    1 1
    2 4
    3 9
    4 16
    5 25
    6 36
    7 49
    8 64
    9 81
    10 100
    11 121
    12 144
\end{filecontents*}
\usepackage{subcaption}
\pgfplotsset{every axis/.append style={
        label style={font=\LARGE\bfseries},
        tick label style={font=\LARGE}  
    },
    y axis/.append style={align=center}}
\begin{document}
    \begin{figure}[htpb]
        \begin{subfigure}[t]{0.45\linewidth}
            \includestandalone[width=\linewidth, mode=buildnew,
            ]{sub}\caption{Image I}
        \end{subfigure}\hfill
        \begin{subfigure}[t]{0.45\linewidth}
            \includestandalone[width=\linewidth, mode=buildnew,
            ]{sub2}\caption{Image II}
        \end{subfigure}
    \end{figure}
\end{document}

sub.tex:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplotstable}
\usepackage{pgfplots}
\begin{document}
    \pgfplotstableread{file1.dat}{\tablea}
    \begin{tikzpicture} 
                \begin{axis}[
            ymin=0, ymax=30,
            xmin=0, xmax=5,
            xlabel={$x$},
            ylabel={$y$},
            grid=major,
            legend entries={\(y_1\),\(y_2\),\(y_1+y_2\)},
            legend pos = north west
            ]
            % Select appropriate columns
            \addplot [blue, mark=*] table [x=x,y=y] {\tablea};
        \end{axis}
    \end{tikzpicture}
\end{document}

sub2.tex:

\documentclass[tikz]{standalone}
\usepackage{tikz}Screenshot_20210208_175745.png
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
    \pgfplotstableread{file2.dat}{\tablea}
    \begin{tikzpicture} 
        \begin{axis}[
            ymin=0, ymax=90,
            xmin=0, xmax=10,
            xlabel={$x$},
            ylabel={$y$},
            grid=major,
            legend entries={\(y_1\),\(y_2\),\(y_1+y_2\)},
            legend pos = north west
            ]
            % Select appropriate columns
            \addplot [blue, mark=*] table [x=x,y=y] {\tablea};
        \end{axis}
    \end{tikzpicture}
\end{document}

导致

在此处输入图片描述

人们可能会注意到,虽然左边的图形是以相同的方式生成的,并且两个图形都被设置为相同的宽度,但是左边的图形略高于右边的图形。

相关内容