以整数作为输入并绘图来计算函数

以整数作为输入并绘图来计算函数

我想绘制 1/2*x(x+1) 函数,其值为 3 到 20 之间的整数,特别是我希望函数在这些点上绘制。到目前为止,我已成功创建以下图表,但显然这不是我想要的

绘制 1/2*x(x+1)

这是我写的代码:

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[ 
    xlabel={Numero di elementi},
    ylabel={Numero di coppie},
    xmin=3, xmax=20,
    ymin=0, ymax=55,
    xtick={1,...,20}
  ] 
    \addplot {0.5*x*(x-1)}; 
  \end{axis}
\end{tikzpicture}
\end{figure}

那么我做错了什么?

答案1

您可以使用关键字调整计算/绘图范围domain。如果您只想要 x 整数值的评估点,请使用关键字在范围内samples选择适当的数字:samplesdomain

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[ 
    xlabel={Numero di elementi},
    ylabel={Numero di coppie},
    xmin=3, xmax=20,
    ymin=0, %ymax=55,
    xtick={1,...,20},
    domain={3:20},
    samples=18
  ] 
    \addplot {0.5*x*(x-1)}; 
  \end{axis}
\end{tikzpicture}
\end{document}

绘图示例

答案2

这里的其他解决方案试图强制pgfplots选择所需位置的样本。已经有一种非常明确的方法来指定您想要在哪里取样,那就是使用

samples at={<list>}

在此处输入图片描述

笔记:

  • samples at=优先级高于samplesdomain。因此,当指定时,samplesdomain将被忽略。samples at=
  • 如果您需要清除之前设置的samples at=列表,可以通过 进行清除samples at={}。这将重新激活domain密钥(以及samples密钥,但文档没有明确指出这一点)。

代码:

\documentclass{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[ 
    xlabel={Numero di elementi},
    ylabel={Numero di coppie},
    xmin=3, xmax=20,
    ymin=0, ymax=55,
    xtick={1,...,20},
    samples at={3,...,20}
  ] 
    \addplot {0.5*x*(x-1)}; 
  \end{axis}
\end{tikzpicture}
\end{document}

答案3

您可以使用\foreach命令。

\begin{figure}
\begin{tikzpicture}
  \begin{axis}[ 
    xlabel={Numero di elementi},
    ylabel={Numero di coppie},
    xmin=3, xmax=20,
    ymin=0, ymax=55,
    xtick={1,...,20}
  ] 
  \foreach \n in {3,4,...,20}{
    \addplot [mark=*] coordinates {(\n,{\n*(\n-1)/2})}; 
    }
  \end{axis}
\end{tikzpicture}
\end{figure}

但我不明白你为什么这么说,ymax=55因为这样你只需要绘制 3 到 11 的点(其余的点不会出现)。如果你想让所有点都出现,你应该对其进行评论。

阴谋

相关内容