如何填滿由網格線和軸界定的區域?

如何填滿由網格線和軸界定的區域?

可以pgfplots使用axis這些選項minor xtickminor ytick手動grid=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}

相關內容