![为 pgfplots 添加精美设计(阴影、圆角、反射)](https://linux22.com/image/246171/%E4%B8%BA%20pgfplots%20%E6%B7%BB%E5%8A%A0%E7%B2%BE%E7%BE%8E%E8%AE%BE%E8%AE%A1%EF%BC%88%E9%98%B4%E5%BD%B1%E3%80%81%E5%9C%86%E8%A7%92%E3%80%81%E5%8F%8D%E5%B0%84%EF%BC%89.png)
在我们公司,我们希望使用 LaTeX 来运行客户报告,它工作得很好,但我们在图表的设计要求方面遇到了困难——我们使用pgfplots
。我们的目标是获得那些奇特的“反射式”图表,也可以使用一些阴影,这样看起来有点三维。
我们能得到的唯一阴影就是这个阴影,但它看起来应该像 TikZ/PGF 参考 (v2.1 p.418) 中的发光阴影,这似乎只适用于圆圈(至少对我来说)。对于反射,我尝试了淡入淡出,但这会导致阴影出现问题。此外,淡入淡出的效果并不适用于所有条形,而是取决于它们的高度。
最后一点是圆角,虽然可以,但顶角和底角不行(有趣的是阴影不行)。这看起来也很奇怪,最好只使用圆顶角。
下面我附上了一个包含我们当前状态的小样本,我很乐意听取建议。
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{shadows}
\begin{document}
\tikzfading[name=fade down,
top color=transparent!30,
bottom color=transparent!0]
\begin{tikzpicture}
\begin{axis}[axis x line*=bottom,
axis y line*=left, drop shadow]
\addplot[ybar, blue, fill,path fading=fade down, rounded corners=2pt]
coordinates{(1,2.9) (2,1.7) (3,4.2) (4,5.1) (5,4) (6,2.2)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
有许多可以应用的黑客技术,但我认为这足以被视为一种解决方案。
对于阴影,可以使用pgf-blur
由开发的软件包(或带有.dtx
文件的 TikZ 库)马丁·吉斯。 看衰落声明中软路径的重用?衰落的转变?因此,将漂亮的阴影与绘图移位相结合,使圆角矩形消失,看起来就像“3D”。阴影没有问题的原因正是这个 hack 起作用的原因,它们被轴剪裁了。
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{shadows.blur}
\begin{document}
\tikzfading[name=fade down,
top color=transparent!30,
bottom color=transparent!0]
\begin{tikzpicture}
\begin{axis}[axis x line*=bottom,
axis y line*=left, blur shadow]
\addplot[yshift=-2pt,ybar, blue, fill,path fading=fade down, rounded corners=2pt]
coordinates{(1,2.9) (2,1.7) (3,4.2) (4,5.1) (5,4) (6,2.2)};
\end{axis}
\end{tikzpicture}
\end{document}