如何向 pgfplots 轴添加阴影?

如何向 pgfplots 轴添加阴影?

使用阴影 TikZ 库,我们可以为矩形添加阴影。有没有办法将相同的效果添加到 pgfplots 图片的框轴?这是一个最小的例子:

\documentclass{minimal}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{shadows}
\begin{document}
\begin{tikzpicture}
\draw[fill=white, drop shadow] (0,0) rectangle (5, 5);
\end{tikzpicture}

\vspace*{1.0\baselineskip}
\begin{tikzpicture}
\begin{axis}
\addplot {x^2};
\end{axis}
\end{tikzpicture}
\end{document}

结果是: 图片示例

答案1

两个选项:

  1. 在职的里面环境axis下,可以使用原生的图层系统pgfplots配合rel axis坐标系来添加阴影(需要clip=false):

    \documentclass{article}
    \usepackage{pgfplots}
    \usetikzlibrary{shadows}
    
    \begin{document}
    
    \begin{tikzpicture}
    \begin{axis}[set layers,clip=false]
    \addplot {x^2};
    \draw[fill=white, drop shadow,on layer=axis background] 
      (rel axis cs:0,0) rectangle (rel axis cs:1,1);
    \end{axis}
    \end{tikzpicture}
    \end{document}
    

    在此处输入图片描述

  2. 在职的外部环境axis中,您可以命名轴,然后使用该名称使用 tikzbackgrounds库将阴影放置在背景上:

    \documentclass{article}
    \usepackage{pgfplots}
    \usetikzlibrary{shadows,backgrounds}
    
    \begin{document}
    
    \begin{tikzpicture}
    \begin{axis}[name=myaxis]
    \addplot {x^2};
    \end{axis}
    \begin{pgfonlayer}{background}
    \draw[fill=white, drop shadow] (myaxis.north west) rectangle (myaxis.south east);
    \end{pgfonlayer}
    \end{tikzpicture}
    
    \end{document}
    

    在此处输入图片描述

顺便提一下,pgfplots内部加载 TikZ,因此加载前者时无需加载后者。该类minimal旨在使用经典的“Hello world!”之类的东西来测试安装。我建议您不要将其用于比这更复杂的事情。

相关内容