Как заполнить область, ограниченную линиями сетки и осями?

Как заполнить область, ограниченную линиями сетки и осями?

С pgfplotsпомощью можно axisиспользовать опции minor xtickи minor 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

Для этого можно использовать обычную \fillкоманду TikZ в сочетании с системами координат axis cs:и rel axis cs:. Координаты, указанные в форме, (axis cs:2,3)относятся к координате 2,3в системе координат данных, а rel 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}

Связанный контент