pgfplots“每个箭筒图”样式键?

pgfplots“每个箭筒图”样式键?

我想向每个“箭筒图”添加相同的选项集。PGFPlots 提供了向每个图添加选项的pgfplots样式,但箭筒图是在范围内创建的。 every axis plotquiver={...}

显而易见的猜测是设置一个名为的样式键,every quiver plot但它没有任何效果。将箭筒键添加到会every axis plot导致错误。

这是一个最小的非工作示例。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\pgfplotsset{
    every axis/.append style={
        xmin=-1,xmax=1,ymin=-1,ymax=1,
        view={0}{90},
        width=4cm,
        axis equal image
    },
    every axis plot/.append style={
        blue,-stealth,
    },
    % compiles without error but has no effect
    every quiver plot/.style={
        scale arrows=0.5,  
        update limits
    }
}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
        \addplot3[quiver={u=x,v=y}] {x};
    \end{axis}
\end{tikzpicture}
\qquad
\begin{tikzpicture}
    \begin{axis}
        \addplot3[quiver={u=-y,v=x}] {x};
    \end{axis}
\end{tikzpicture} 
\end{document}

示例代码输出

答案1

我发布后立即找到了一种解决方法:

\documentclass[png]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\pgfplotsset{
    every axis/.append style={
        xmin=-1,xmax=1,ymin=-1,ymax=1,
        view={0}{90},
        width=4cm,
        axis equal image
    },
    every axis plot/.append style={
        blue,-stealth,
        quiver={scale arrows=0.5,update limits}
    }
}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
        \addplot3[quiver={u=x,v=y}] {x};
    \end{axis}
\end{tikzpicture}
\qquad
\begin{tikzpicture}
    \begin{axis}
        \addplot3[quiver={u=-y,v=x}] {x};
    \end{axis}
\end{tikzpicture} 
\end{document}

出于某种原因,我认为quiver在图中设置的键会覆盖在中设置的键every axis plot。幸运的是,我错了。

示例代码输出

为了实现我想要的界面(即实际every quiver plot风格),您可以这样做:

\pgfplotsset{
    every quiver plot/.style={},
    quiver/.prefix code={\pgfqkeys{/pgfplots/quiver}{/pgfplots/every quiver plot}}
}

然后后来:

\pgfplotsset{every quiver plot/.style={
    scale arrows=0.5,  
    update limits
}}

相关内容