如何填充由网格线和轴包围的区域?

如何填充由网格线和轴包围的区域?

可以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}

相关内容