TikZ 散点图:连续函数到离散近似

TikZ 散点图:连续函数到离散近似

我正在尝试绘制几何分布 PMF,我知道我可以手动构建一个离散值表,但我正在寻找一些不那么详尽且更准确的东西。所以我得到了 PMF 的散点图(最初被视为连续函数),现在我想用直线连接这些点。有没有办法做到这一点,或者你必须将实际点存储在表中?如果是这样,有没有办法自动计算表格的函数值?

\documentclass[oneside,final,14pt]{extreport}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepgfplotslibrary{fillbetween}

\begin{document}
\tikzset{
        declare function={
            geom(\x,\p) = \p * (1-\p)^(\x);
        },
   }
       \pgfplotsset{exp_chart/.style={
        height=9cm, width=18cm,
        xmin=0, xmax=4.5,
        ymin=-0.05,
        ymax=1.2,
        xlabel={$x$},
        ylabel={$f(x)$},
        xtick = {0.5, 1, ..., 4.5},
        ytick = {0.5, 1},
        axis line style = thick,
        axis lines = middle,
        enlargelimits=false,
   }}
   
   \begin{center}
    \begin{tikzpicture}
    \begin{axis}[exp_chart, ymax=1.2]
        \addplot[color=red, domain=0:4, samples=5, only marks] {geom(x,0.5)};
    \end{axis}
    \end{tikzpicture}
    \end{center}
\end{document}

答案1

您目前only marks在选项中拥有\addplot,这意味着只绘制标记,就像散点图一样。如果删除,only marks您将得到一条没有标记的实线。如果用 替换,mark=*您将获得标记和线。

因此,\addplot[color=red, domain=0:4, samples=5, mark=*] {geom(x,0.5)};给出

在此处输入图片描述

顺便注意一下,width=18cm您获得的图表比文本块更宽,因此您会收到过满的水平盒子警告。

\documentclass[oneside,final,14pt]{extreport}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\tikzset{
        declare function={
            geom(\x,\p) = \p * (1-\p)^(\x);
        },
   }
       \pgfplotsset{exp_chart/.style={
        height=9cm, width=18cm,
        xmin=0, xmax=4.5,
        ymin=-0.05,
        ymax=1.2,
        xlabel={$x$},
        ylabel={$f(x)$},
        xtick = {0.5, 1, ..., 4.5},
        ytick = {0.5, 1},
        axis line style = thick,
        axis lines = middle,
        enlargelimits=false,
   }}
   
\begin{document}

   \begin{center}
    \begin{tikzpicture}
    \begin{axis}[exp_chart, ymax=1.2]
        \addplot[color=red, domain=0:4, samples=5, mark=*] {geom(x,0.5)};
    \end{axis}
    \end{tikzpicture}
    \end{center}
\end{document}

相关内容