轴背景缺少绘图/描边

轴背景缺少绘图/描边

我想围绕使用 创建的轴绘制一个矩形pgfplots。这是一个最小的例子:

\documentclass{minimal}

\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[axis background/.style={fill=blue!10, draw=black, line width=1pt},
    axis x line=center, axis y line=center, 
    xmin=-1, xmax=1, ymin=-1, ymax=1]
\addplot {x};
\end{axis}
\end{tikzpicture}
\end{document}

它创建的内容如下:

输出图片

如您所见,轴背景左侧的绘制/描边缺失。有人知道问题出在哪里吗?

答案1

绘制二维轴的命令似乎缺少\pgfpathclose命令(我会为此提交错误报告)。与此同时,您可以通过在样式insert path={ \pgfextra{\pgfplots@clippath@install{} \pgfpathclose} }中使用来解决此问题axis background

在下面的例子中,我用insert path一种名为 的新样式包装了closed background

\documentclass{minimal}

\usepackage{tikz}
\usepackage{pgfplots}

\makeatletter
\tikzset{
    closed background/.style={
        insert path={
            \pgfextra{\pgfplots@clippath@install{} \pgfpathclose}
        }
    }
}
\makeatother

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis background/.style={
        fill=blue!10,
        draw=black,
        line width=1pt,
        line cap=round,
        closed background
    },
    axis lines*=center, 
    xmin=-1, xmax=1, ymin=-1, ymax=1]
\addplot {x};
\end{axis}
\end{tikzpicture}
\end{document}

答案2

我不知道为什么axis background不画出左边的线。但是,您可以使用backgrounds库添加一个,background rectangle默认情况下,通过在轴和框之间添加分隔,似乎会产生更好的结果。请注意,灰色框是裁剪的结果,而不是图形的一部分:

在此处输入图片描述

\documentclass[border=5pt]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{backgrounds}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis x line=center, axis y line=center,
    xmin=-1, xmax=1, ymin=-1, ymax=1,
    /tikz/background rectangle/.style={
        fill=blue!10,
        draw=black,
        line width=1pt
    },
    show background rectangle
    ]
\addplot {x};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容