Как построить набор единичных векторов, углы которых выбраны из нормального распределения, с помощью 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}

введите описание изображения здесь

Связанный контент