为什么我无法对这个图形应用渐变色?

为什么我无法对这个图形应用渐变色?

我不太擅长乳胶,在这里寻找如何将渐变应用于图像,我发现了一篇基本上是我想要的帖子。

我使用的帖子

使用邮政编码,我得到以下图片

预期的

然而,当使用同样的逻辑

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[xmax=120,ymax=5, samples=50]
        \foreach \b in {1,1.2,...,4}{
            \pgfmathtruncatemacro{\tmp}{100-\x*20}
            \addplot [blue!\tmp!green,thick,domain=0:360,smooth] plot ({(2^2-\b^2)/(2*\b)*(\b*cos(\x))^3},
             {(2^2-\b^2)/(2*\b)*(-2*(sin(\x))^3)});
        }
    \end{axis}
\end{tikzpicture}

\end{document}

我得到以下结果:

结果

出现错误

有人知道发生了什么吗?或者知道正确的解决方法吗?

提前致谢!

答案1

我不明白你是如何得到输出的,我得到了错误,并且绘制的函数并没有真正给出省略号。不过,主要问题是

\pgfmathtruncatemacro{\tmp}{100-\x*20}

应该

\pgfmathtruncatemacro{\tmp}{100-\b*20}

即用 a\b代替\x。然后命令的扩展存在问题\addplot

\documentclass[tikz,border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17} 
\begin{document}

\begin{tikzpicture}
    \begin{axis}[xmax=120,ymax=5, samples=50]
        \foreach \b in {1,1.2,...,4}{
            \pgfmathtruncatemacro{\tmp}{100-\b*20}
            \edef\temp{
            \noexpand\addplot [blue!\tmp!green,thick,domain=0:360,smooth] 
            plot ({(2^2-\b^2)/(2*\b)*(\b*cos(x))^3},
             {(2^2-\b^2)/(2*\b)*(-2*(sin(x))^3)});}
            \temp 
        }
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容