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}

여기에 이미지 설명을 입력하세요

관련 정보