PGFPlots“填充之间”导致极轴消失

PGFPlots“填充之间”导致极轴消失

有点难以弄清楚 tikz/pgf 在这里想要我做什么。我尝试了以前提问者提供的一些解决方案,但似乎仍然无济于事。当我使用时\addplot fill between [of=A and B];,我的极轴完全消失,无论颜色和不透明度等其他设置如何,都不会出现阴影。以下是一个例子:

\begin{tikzpicture}
    \begin{polaraxis}[axis on top,
        xticklabels={,0,$\frac\pi6$,$\frac\pi3$,$\frac\pi2$,$\frac{2\pi}3$,$\frac{5\pi}6$,$\pi$,$\frac{7\pi}6$,$\frac{4\pi}3$,$\frac{3\pi}2$,$\frac{5\pi}3$,$\frac{11\pi}6$}
        ]
    \addplot+[name path = A, mark=none,domain=0:720,samples=600, black] 
        {3*sin(3 * x)};
    \addplot+[name path = B, mark=none,domain=0:720,samples=600, black] 
        {3*cos(3 * x)};]
    % \tikzfillbetween[of=A and B]{gray, opacity=0.5}
    % equivalent to (x,{sin(..)cos(..)}), i.e.
    % the expression is the RADIUS
    \addplot fill between [of=A and B];
    \end{polaraxis}
\end{tikzpicture}

消失的轴

另一个提问者用 找到了解决方案\tikzfillbetween[of=A and B]{gray, opacity=0.5},但它似乎无法完成填充两条路径交点的工作,至少在极轴的上下文中是如此(在直角轴中,在 之间 填充效果很好!)。它在填充并集方面做得很好,但我正在寻找交点。
在此处输入图片描述

作为参考,这里有fill between同一篇论文其他地方的一个例子。
在此处输入图片描述
我完全理解,如果 pgf 的当前版本无法实现这一点,但如果能确切知道就更好了。非常感谢!

答案1

这是一种更原始​​但有效的方法来填充两条曲线的交点。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
%\usepgfplotslibrary{fillbetween}
\pgfplotsset{compat=1.17}
\makeatletter
\tikzset{reuse path/.code={\pgfsyssoftpath@setcurrentpath{#1}}}
\makeatother
\begin{document}
\begin{tikzpicture}
  \begin{polaraxis}[axis on top,
        xticklabels={,0,$\frac\pi6$,$\frac\pi3$,$\frac\pi2$,$\frac{2\pi}3$,$\frac{5\pi}6$,$\pi$,$\frac{7\pi}6$,$\frac{4\pi}3$,$\frac{3\pi}2$,$\frac{5\pi}3$,$\frac{11\pi}6$}
        ]
    \addplot[save path=\pathA, mark=none,domain=0:720,samples=600, black] 
        {3*sin(3 * x)};
    \addplot[save path=\pathB,  mark=none,domain=0:720,samples=600, black] 
        {3*cos(3 * x)};
    \clip[reuse path=\pathA];
    \fill[gray,opacity=0.5,reuse path=\pathB];
  \end{polaraxis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容