[Tex/LaTex] Reference pgfplots’ groupplot with subcaption

labelspgfplotssubcaption

I created a groupplot with pgfplots. For referencing each plot I added a subcaption within a node into each plot.

\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}[h]
    \begin{tikzpicture}
        \begin{groupplot}[group style={group size=1 by 2}]
            \nextgroupplot
            \node [text width=1em,anchor=north west] at (rel axis cs: 0,1) {\captionof{subfigure}{\label{fig:a}}};
            \addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};
            \nextgroupplot
            \node [text width=1em,anchor=north west] at (rel axis cs: 0,1) {\captionof{subfigure}{\label{fig:b}}};
            \addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};
        \end{groupplot}
    \end{tikzpicture}
    \caption{Figure}
\end{figure}
Figure \ref{fig:a} and \ref{fig:b}?!?
\end{document}

The problem is: the counter is wrong. The subfigure 1a is referenced as 0a. The same behavior in my whole document, e. g. 4b gets 3b.

Wrong references of subcaptions.

Best Answer

Use \subcaption{\label{fig:a}} and \subcaption{\label{fig:b}} to set the subcaptions.

enter image description here

Code:

\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}% <- added, current version is 1.13
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}[htb]
    \begin{tikzpicture}
        \begin{groupplot}[group style={group size=1 by 2}]
            \nextgroupplot
            \node [text width=1em,anchor=north west] at (rel axis cs: 0,1)
                {\subcaption{\label{fig:a}}};%<- changed
            \addplot plot coordinates {(0,0) (1,1) (2,2) (3,3)};
            \nextgroupplot
            \node [text width=1em,anchor=north west] at (rel axis cs: 0,1) 
                {\subcaption{\label{fig:b}}};%<- changed
            \addplot plot coordinates {(0,0) (1,1) (2,4) (3,9)};
        \end{groupplot}
    \end{tikzpicture}
    \caption{Figure}
\end{figure}
Figure \ref{fig:a} and \ref{fig:b}?!?
\end{document}

Note that it is useful to set a compat value.