Tikz 无法正确绘制函数

Tikz 无法正确绘制函数

我尝试绘制以下函数,但没有成功:

y = 300 + 1000/x + 2.5x

这是文档,但它没有显示图表,而是仅显示了轴。

\documentclass{article}

\usepackage{pgfplots}% This uses tikz
\pgfplotsset{compat=newest}% use newest version

\pgfmathdeclarefunction{Function}{1}{%
  \pgfmathparse{300 + 1000/x + 2.5}%
}

\tikzset{My Line Style/.style={smooth, thick, samples=400}}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xmin=0.0,
    xmax=250,
    ymin=0,
    ymax=50,
    axis x line=bottom,
    axis y line=left, 
    xlabel= $y$,
    ylabel=Cost, 
    xtick={250},
    xticklabels={250},    
    restrict x to domain=0:250,
    ]   
    \addplot+[My Line Style, color=black, samples at={1,2,3,4,...,249,250}] (\x,{Function(\x)});


\end{axis} 
\end{tikzpicture}
\end{document}
\documentclass{article}

答案1

根据评论中的信息回答。

我设置了compat=1.9,这样compat=newest即使将来的更新破坏了兼容性,该解决方案也能起作用。

我还更新了函数的声明,以匹配问题文本中所写的内容。 在您的风格中My Line Stylesamples=400是多余的,因为您samples at=<...>在下面使用。

问题是ymax=50,它剪辑了图,没有显示任何函数。我已将其注释掉以自动设置限制,但您也可以将其更改为更合适的值。

我还调整了的内容以samples at=<...>产生(在我看来)更好的标记间距。您也可以使用 Jake 的建议samples at={1,...,250},或者等效地,samples=250, domain=0:250

代码

\documentclass{article}

\usepackage{pgfplots}% This uses tikz
\pgfplotsset{compat=1.9}% use current version at time of writing

\pgfmathdeclarefunction{Function}{1}{%
  \pgfmathparse{300 + 1000/x + 2.5*x}% corrected to written form in question text
}

\tikzset{My Line Style/.style={smooth, thick}} % samples=400 is redundant since you specify samples at below

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xmin=0.0,
  xmax=250,
  ymin=0,
  %ymax=50, % <<< this was the problem
  axis x line=bottom,
  axis y line=left, 
  xlabel= $y$,
  ylabel=Cost, 
  xtick={250},
  xticklabels={250},    
  restrict x to domain=0:250,
]   
    \addplot+[My Line Style, color=black, samples at={1,2,3,4,6,9,16,...,250}] (\x,{Function(\x)});
\end{axis} 
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容