30 请问这种随机散点图用 Tikz 怎么画

发布于 2024-07-05 08:23:27

高中数学统计部分有时候会出这样的图, 带点随机性质, 然后又不是完全随机的, 如下图
r1.jpg
r2.jpg
其中点最少的那个, 我模仿到一个代码如下

\begin{tikzpicture}
\tkzDefPoints{0/0/O,3.5/0/X,0/3.5/Y}
\draw[-stealth](O)--(X)node[below]{x};
\draw[-stealth](O)--(Y)node[right]{y};
\foreach \i in {1,2,...,10}
{
    \coordinate (T) at ({0.3*\i},{0.3*\i+0.2*rand});
    \tkzDrawPoints(T)
}
\tkzLabelPoints[below left](O)
\end{tikzpicture}

但是对于比较复杂的其他选项, 就不知道怎么画了, 因此请教一下大佬们。谢谢。

查看更多

关注者
0
被浏览
296
雾月
雾月 2024-07-05
这家伙很懒,什么也没写!

一个随机的点可以由三个步骤生成:

  1. 由一个期望为 μ_x 的随机分布生成一个横坐标 x ;
  2. 根据 1 生成的横坐标,由一个随机分布生成一个纵坐标 y;
  3. 根据 1 生成的横坐标,由一个残差函数生成一个残差 r,

然后画出点 (x, y+r) 即可。不同的随机分布可以生成不同的图形。

比如类似图 A 的
image.png

\documentclass[tikz,border=5pt]{standalone}

\ExplSyntaxOn
\cs_new_protected:Npn \fpstepfromto#1#2#3 
  {% from, to, nums
    \fp_step_inline:nnnn {#1} { (#2-(#1))/(#3-1)*0.99 } {#2}
  }
\pgfmathdeclarefunction{nrand}{0}
  {% \tex_normaldeviate:D 生成均值为 0,标准差为 65536 的随机整数
    \tl_set:Nx \pgfmathresult { \fp_eval:n { \tex_normaldeviate:D/65536 } }
  }
\ExplSyntaxOff

\begin{document}

\begin{tikzpicture}
\draw[-stealth](0,0)--(3.5,0)node[below]{$x$};
\draw[-stealth](0,0)--(0,3.5)node[right]{$y$};

\pgfmathdeclarefunction{xx}{1}{\pgfmathparse{#1+nrand*#1/50}}
\pgfmathdeclarefunction{yy}{1}{\pgfmathparse{#1*4/5}} % y=4/5 x
\pgfmathdeclarefunction{res}{1}{\pgfmathparse{nrand/10}}
\fpstepfromto{0.5}{3}{10}{
  \pgfmathparse{xx(#1)}\let\xx\pgfmathresult
  \fill[black] (\xx,{yy(\xx)+res(\xx)}) circle(1pt);
}
\end{tikzpicture}

\end{document}
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览