PGFPlots では図の参照が機能しません

PGFPlots では図の参照が機能しません

これが私の MWE です:

\documentclass{book}

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

\usepackage{subfig}

\usepackage{titletoc}

\begin{document}

\begin{figure}[h!]
    \begin{center}{
        \begin{tikzpicture}
            \begin{axis}
            \addplot[domain=0:360]({cos(x)},{sin(x)});
            \end{axis}
        \end{tikzpicture}
        \caption{This was generated with PGFPlots.}
    }
    \end{center}
    \label{fig-circle}
\end{figure}

See figure~\ref{fig-circle}.

\begin{figure}[h!]
    \begin{center}{
    \includegraphics{header.png}
}
\end{center}
\caption{This was read from a PNG file.}
\label{fig-image}
\end{figure}

See also figure~\ref{fig-image}.

\end{document}

これは次のようにコンパイルされます。

ここに画像の説明を入力してください

ドキュメントクラスを使用すると、article「図??を参照してください。」も印刷されます。

以前に PGFPlots を使用して図を作成し、それをテキストで参照したことは 100% 確かです。今回は何が間違っているのか全くわかりません。

どうしたの?

titletoc(ボーナスポイントとして、パッケージやパッケージを削除すると、コンパイラがエラーになるのはなぜですかsubfig? MWE をコンパイルするのに、どちらも必要ないことは確かです。また、以前にこれらのパッケージなしでコンパイルしたこともあったことは確かです。違いがあるかどうかはわかりませんが、私は TeXShop 4.68 を使用しています。)

答え1

質問の意味がよく分かりませんでしたが、どうやらラベル参照 1 に問題があるようです。もしそうなら、\label{fig-circle}キャプション の横に\caption{This was generated with PGFPlots.}、つまり のようなものを配置すると\caption{This was generated with PGFPlots.}\label{fig-circle}、問題が解決する可能性があります。2 回コンパイルすることを忘れないでください。

答え2

まあ、配置をいろいろ試してみたのです\label{fig-circle}が、環境内に配置するとcenter(つまり、MWE での位置の 2 行上に配置すると) うまくいくようです。なぜそれが重要なのかわかりません。

関連情報