グリッド線と軸で囲まれた領域を塗りつぶすにはどうすればよいでしょうか?

グリッド線と軸で囲まれた領域を塗りつぶすにはどうすればよいでしょうか?

オプションとを一緒に使用して、手動でグリッド ラインを作成pgfplotsできます。このようなグリッド ラインを使用する場合、グリッド ラインと軸で囲まれた特定の領域を何らかの色で塗りつぶして強調したい場合があります。これは可能ですか?axisminor xtickminor ytickgrid=minor

ここで問題を説明する例を挙げます。次のようなものがあるとします。

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    minor ytick={2},
    minor xtick={2},
    grid=minor
    ]
    \addplot{x};
  \end{axis}
\end{tikzpicture}

\end{document}

生成する

サンプルコードによって生成されたプロット

グリッド線と軸で囲まれた右上の領域を強調したいとします。どうすればよいでしょうか。つまり、次のようなものを作成します。

グリッド線と軸で囲まれた領域を塗りつぶしたプロット

答え1

これには、通常のTikZコマンドをおよび座標系\fillと組み合わせて使用​​できます。 フォームで指定された座標はデータ座標系の座標を参照し、 はプロットキャンバスの右上隅を参照します。この場合、次のように使用できます。axis cs:rel axis cs:(axis cs:2,3)2,3rel axis cs:1,1

\fill [orange!25] (axis cs:2,2) rectangle (rel axis cs:1,1);

\addplot長方形領域を網掛けするには、コマンドの前にを設定します。 を設定しaxis on topないと、色付きの領域が目盛りや軸線と重なってしまうので、 を設定する必要があります。

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    minor ytick={2},
    minor xtick={2},
    grid=minor,
    axis on top
    ]
    \fill [orange!25] (axis cs:2,2) rectangle (rel axis cs:1,1);
    \addplot{x};
  \end{axis}
\end{tikzpicture}

\end{document}

関連情報