以一致大小外部化图形

以一致大小外部化图形

我使用 pgfplots 绘制图形,然后使用 externalize 库输出独立 pdf,并将其包含在另一个文档中。问题是输出的独立图形宽度不同,当将它们全部包含在相同宽度中时,字体大小会有所不同。在执行我描述的工作流程时,有没有办法让所有图形的字体大小相同。

MWE 有两个 pgfplots 图形,它们都具有 tikzpicture 中指定的相同宽度,其中一个具有更大的 ytick 标签,其他一切都相同。生成的独立图形具有不同的宽度。当我将它们包含在另一个文档中时,字体会有所不同。

\documentclass[a4paper,12pt]{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.10}

\usepgfplotslibrary{external}
\tikzexternalize[prefix=tikz_figures/]

\begin{document}
\begin{figure}
\begin{tikzpicture}
    \begin{axis}[
        width=7.5cm,
        xmin = 0, xmax = 5,
        ymin = 0, ymax = 5,
        xlabel={x},
        ylabel={y}
        ]
    \end{axis}
\end{tikzpicture}
\end{figure}
\begin{figure}
\begin{tikzpicture}
    \begin{axis}[
        width=7.5cm,
        xmin = 0, xmax = 5,
        ymin = 0, ymax = 5,
        ytick = {0.1},
        xlabel={x},
        ylabel={y}
        ]
    \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

有任何想法吗?

答案1

ytick在第二个图中,您在 0.1 处有一个,因此ylabel考虑到额外的空间,将向右移动。您可以ylabel通过以下方式固定 的位置:

ylabel style={at={(rel axis cs:-0.1,0.5)}}

您可以在手册中找到各种cs(如)系统(此外,我已经使用过)ticklabel csrel axis cs

\documentclass[a4paper,12pt]{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.10}

\usepgfplotslibrary{external}
\tikzexternalize[prefix=tikz_figures/]

\begin{document}
\begin{figure}
\begin{tikzpicture}
    \begin{axis}[
        width=7.5cm,
        xmin = 0, xmax = 5,
        ymin = 0, ymax = 5,
        xlabel={x},
        ylabel={y},
        ylabel style={at={(rel axis cs:-0.1,0.5)}}
        ]
    \end{axis}
\end{tikzpicture}
\end{figure}
\begin{figure}
\begin{tikzpicture}
    \begin{axis}[
        width=7.5cm,
        xmin = 0, xmax = 5,
        ymin = 0, ymax = 5,
        ytick = {0.1},
        xlabel={x},
        ylabel={y},
        ylabel style={at={(rel axis cs:-0.1,0.5)}}
        ]
    \end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容