为直线添加抖动

为直线添加抖动

我找到了一篇关于:如何使用 pgfplots 向散点图添加抖动。我想给直绿线添加抖动来重新创建该图形在此处输入图片描述。。

您认为这是最好的方法吗?箭头也是装饰品吗?

    \documentclass{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-4,xmax=+0, ymin=-0.5,ymax=4.5, axis lines=left] 

\addplot[draw=green, mark=none, ultra thick, domain=-4.0:-0.1,
         samples=100] 
    {2}
    node [midway, above right] {\small $\bar{U}$ Time-average velocity}; 

\end{axis} 
\end{tikzpicture}
\end{document}

答案1

这种方法与 vrleboss 的建议非常相似,但为了适应波动速度的箭头,我们需要模拟自相关噪声(或尝试大量不相关噪声的实现)。

这里我使用两个余弦函数的乘积作为基函数,然后在其上添加随机噪声:

\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
\pgfmathsetseed{1}
\begin{axis}[xmin=-4,xmax=+0, ymin=-0.5,ymax=4.5, axis lines=left,
    clip=false] 

\addplot[draw=black, mark=none, ultra thick, domain=-4.0:-0.1,
         samples=2] 
    {2}
    node [right] {\small $\bar{U}$ Time-average velocity}; 
\addplot[draw=red, mark=none, ultra thick, domain=-4.0:-0.1,
         samples=100] 
    {2+0.8*cos(x*300)*cos(x*50)+rand/5}
    node [red, right] {\small $U$ Instantaneous velocity}
    coordinate [pos=0.25] (point); 
\draw [ultra thick, blue, latex-latex] (point) -- (point|-{axis cs:0,2}) node [pos=0, anchor=-160] {$u'$ Fluctuating velocity};
\end{axis} 
\end{tikzpicture}
\end{document}

答案2

我会使用rand函数。修饰会产生非因果曲线。

\begin{tikzpicture}
\begin{axis}[xmin=-4,xmax=+0, ymin=-0.5,ymax=4.5, axis lines=left] 

\addplot[draw=green, mark=none, ultra thick, domain=-4.0:-0.1,
         samples=100] 
    {2}
    node [midway, above right] {\small $\bar{U}$ Time-average velocity}; 

\addplot[purple,ultra thick, domain=-4.0:-0.1,samples=50] {0.5*rand+2};
\end{axis} 
\end{tikzpicture}

在此处输入图片描述

相关内容