节点内的子标题间距

节点内的子标题间距

我需要在每个图的旁边添加一个子标题\groupplots。经过一番搜索,我发现Tex.SE 上的主题展示了如何向组图添加子标题。我稍微修改了这段代码,以便在图的侧面显示标题。

问题是,节点需要有一个text width。如果没有此参数,TikZ 会向您大喊大叫。但是,在设置 时text width,您必须调整值以匹配您要进行的设计。

在我的例子中,子标题应该显示一些数字。由于这些数字的位数不同,结果看起来有点奇怪。原因是,标题总是位于其框内的中央,在本例中,框是具有给定文本宽度的节点。

所以我的第一个问题是我能做什么,让整个标题左对齐。我不想只让标题内的文本左对齐(这可以通过 实现)justification = raggedright,而是让整个块左对齐。

如果这个问题得到解决,那么第二个问题正在等待;)

如果你看一下我的例子,你会看到,子标题带有一些填充。这些填充不允许我垂直居中节点...所以第二个问题是如何删除子标题填充仅有的关于此图的子标题。

平均能量损失

\documentclass{article}

\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}

\pgfplotsset{compat=1.14}
\usepgfplotslibrary{groupplots}

\begin{document}

\begin{figure}[htb!]
    \centering
    \begin{tikzpicture}
        \begin{groupplot}[group style = {
            group size = 1 by 2,
            xlabels at = edge bottom,
            xticklabels at = edge bottom,
            vertical sep = 4pt
        },
        clip = false]

            \nextgroupplot
            \node [text width = 5em, anchor = north west, draw = red] at (rel axis cs: 1.01, 0.5)
                {\subcaption{Eggs \label{fig:a}}};
            \addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};

            \nextgroupplot
            \node [text width = 5em, anchor = north west, draw = red] at (rel axis cs: 1.01, 0.5) 
                {\subcaption{Bacon \label{fig:b}}};
            \addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};

        \end{groupplot}
    \end{tikzpicture}
    \caption{Caption of figure}
\end{figure}

Figure \ref{fig:a} and \ref{fig:b}

\end{document}

答案1

对于您的第一个问题,我有一个相当简单的建议,但对于您的第二个问题,我没有任何建议,因为我不完全了解问题是什么。(您不能只将锚点设置为170吗?)只需定义一个节点样式,测量标题的宽度并相应地设置文本宽度。

\documentclass{article}

\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}

\pgfplotsset{compat=1.14}
\usepgfplotslibrary{groupplots}
\tikzset{subcaption/.style args={#1 with label #2}{text
width=width("#1")+0.7cm,node contents={\subcaption{#1 \label{#2}}},anchor =170}}
\begin{document}

\begin{figure}[htb!]
    \centering
    \begin{tikzpicture}
        \begin{groupplot}[group style = {
            group size = 1 by 2,
            xlabels at = edge bottom,
            xticklabels at = edge bottom,
            vertical sep = 4pt
        },
        clip = false]

            \nextgroupplot
            \node[subcaption={Eggs with label fig:a},draw =
            red,at={(rel axis cs: 1.01, 0.5)}];
            \addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};
            \nextgroupplot
            \node[subcaption={Bacon and Ham with label fig:b}, 
            draw = red,at={(rel axis cs: 1.01, 0.5)}];
            \addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};

        \end{groupplot}
    \end{tikzpicture}
    \caption{Caption of figure}
\end{figure}

Figure \ref{fig:a} and \ref{fig:b}
\end{document}

在此处输入图片描述

相关内容