我想围绕使用 创建的轴绘制一个矩形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}