为什么 pgfplots 仅绘制函数直到 x = 5 和 y = 5?

为什么 pgfplots 仅绘制函数直到 x = 5 和 y = 5?

为什么 pgfplots 仅绘制函数到 x = 5 和 y = 5,而不绘制其他函数?

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}

%%%<
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}
%%%>

\begin{document}
\begin{tikzpicture}
\begin{axis}[samples=100,ymin=0,ymax=10,xmin=0,xmax=20]

\addplot [thick] plot  (\x,  {1/(1 + exp(-0.6*(\x - 12)))});
\addplot plot (\x, {\x});

\end{axis}
\end{tikzpicture}
\end{document}

答案1

中有很多“域”选项pgfplots。您要问的只是,它指定在绘图中使用domain的值x(如果您使用 ,则不需要反斜杠);默认情况下,我们有 ,作者显然认为这对于典型的图形来说是合理的。对于双变量函数有一个对应的值。pgfplotsdomain = -5:5y domain

xmin此域与和建立的限制完全不同xmax。虽然domain是针对每个图设置的,但这些键是针对每个轴设置的,仅限制实际绘画这些限制。有相应的ymin和。如果没有给出,ymax这些将通过自动计算,但对于真正精美的图片,您必须自己设置它们。请注意pgfplotsy domain不是在单变量函数图中,ymin和没有任何关系,因为它决定了不存在的变量 的输入。相反,如果和是自动确定的,则会根据绘制函数在 上的输出值计算得出。ymaxyyminymaxdomain

还有更多!我最喜欢的是restrict x to domainrestrict y to domain,它们是具有与相同的输入语法的过滤器domain。它们不会确定变量中使用的数字;它们会确定绘图中使用的值。它们对于参数化或不可控函数非常有用;即\addplot {1/x};,在默认的情况下domain = -5:5,将在 处产生相当可怕的渐近线,x = 0以及(在默认的ymin和 的情况下ymax)严重扭曲的轴视图。但restrict y to domain = -5:5在此绘图中设置只会消除大值,移除渐近线并将图片缩放回比例平方。

或者,也可以使用参数图\addplot ({exp(x)},{exp(-x)});(仅在第一象限中绘制相同内容的有趣方式),由于图上的值与变量值之间存在对数关系,因此很难直接调整。为此,默认domain和默认轴大小都不合适;我通常保持domain原样(这会导致两个坐标中的数字都太大),然后相应地设置restrict x to domainrestrict y to domain以很好地修剪图片。这并不是说这样做是个好主意完全地忽略domain,因为这些点计算...只是没使用。

这些过滤键与 min 和 max 键不同,因为它们实际上会忽略过滤掉的值,而不是简单地将它们从图片中剪掉。如果这些值大于 TeX 能够计算的范围,这一点至关重要。

最后,有samplessample at,后者与和互斥存在domain,说一下有多少,甚至确切地x计算值时的值。restrict to domain如果您仔细选择样本以避免异常输入,这可以作为键的替代方案。它们还可用于调整图中快速变化位置周围的绘图,否则这些位置看起来会相当不连贯。它们还与键交互,restrict to domain​​例如,

\addplot[
  domain = -5:5,
  samples = 11,
  restrict x to domain = -1:1,
  restrict y to domain = -1:1
] ({exp(x)},{exp(-x)});

将会评估 11 个点,即 至({exp(-5)},{exp(5)})({exp(5)},{exp(-5)})但只有两个坐标都在区间内的点[-1,1]才会被绘制。不幸的是,唯一具有该属性的点是({exp(0)},{exp(0)}) = (1,1),因此您的绘图将相当空白。 未绘制的点甚至不用于锚定插值曲线! 所以过滤键并不是万能的。

我的照片往往全部这些键,因为它们各自对绘图的影响不同。

相关内容