如何使用 pgfplots 绘制一组角度从正态分布中选择的单位向量?

如何使用 pgfplots 绘制一组角度从正态分布中选择的单位向量?

我想要表示N单位向量,它的角度是从正态分布中选择的,mean=90, sd=10比如(),如下图所示。

我想知道如何使用可以绘制相同的内容pgfplots

在此处输入图片描述

答案1

欢迎光临!类似这样的事吗?

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[declare function={gauss(\x)=exp(-pow(\x/10,2));},>=stealth]
 \begin{axis}[hide axis,xmin=-1,xmax=1,ymin=0,ymax=1]
  \pgfmathsetmacro{\myangle}{0}
  \draw[->] (0,0) -- (90:1);
  \pgfplotsinvokeforeach{0,...,10}{
   \pgfmathsetmacro{\myangle}{\myangle+1/(gauss(\myangle))}
   \edef\temp{\noexpand\draw[->] (0,0) -- (90+\myangle:1);
   \noexpand\draw[->] (0,0) -- (90-\myangle:1);}
   \temp 
  }
 \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者用极轴。

\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}[declare function={gauss(\x)=exp(-pow(\x/10,2));},>=stealth]
 \begin{polaraxis}[ymax=1,xmin=0,xmax=180,ytick=\empty]
  \pgfmathsetmacro{\myangle}{0}
  \draw[->] (0,0) -- (90,1);
  \pgfplotsinvokeforeach{0,...,10}{
   \pgfmathsetmacro{\myangle}{\myangle+1/(gauss(\myangle))}
   \edef\temp{\noexpand\draw[->] (0,0) -- (90+\myangle,1);
   \noexpand\draw[->] (0,0) -- (90-\myangle,1);}
   \temp 
  }
 \end{polaraxis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容