Warum plottet pgfplots Funktionen nur bis x = 5 und y = 5, aber nicht darüber hinaus?
\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}
Antwort1
Es gibt viele „Domänen“-Optionen in pgfplots
. Die, nach der Sie fragen, ist einfach domain
, die angibt, welche Werte von x
(Sie benötigen den Backslash nicht, wenn Sie verwenden pgfplots
) beim Plotten verwendet werden; standardmäßig haben wir domain = -5:5
, was der Autor anscheinend für angemessen für typische Diagramme hält. Es gibt eine Entsprechung y domain
für Funktionen mit zwei Variablen.
Dieser Bereich unterscheidet sich deutlich von den durch xmin
und festgelegten Grenzen xmax
. Während domain
pro Diagramm festgelegt wird, werden diese Schlüssel pro Achse festgelegt und beschränken nur die tatsächlicheZeichnungzu diesen Grenzen. Es gibt entsprechende ymin
und ymax
. Diese werden automatisch von berechnet, pgfplots
wenn sie nicht angegeben sind, aber für ein wirklich ausgefeiltes Bild ist es notwendig, sie selbst festzulegen. Beachten Sie, y domain
dassnichthaben nichts mit ymin
und ymax
in einem Diagramm von Funktionen mit einer Variablen zu tun, da es die Eingaben der nicht vorhandenen Variablen bestimmt y
. Stattdessen würden ymin
und ymax
, wenn sie automatisch bestimmt würden, aus den von Ihren dargestellten Funktionen über die ausgegebenen Werte berechnet domain
.
Es gibt noch mehr! Meine Favoriten sind restrict x to domain
und restrict y to domain
, das sind Filter mit derselben Eingabesyntax wie domain
. Diese bestimmen nicht, welche Zahlen in den Variablen verwendet werden, sondern welche Werte im Diagramm verwendet werden. Sie sind enorm hilfreich bei parametrischen oder unkontrollierbaren Funktionen; d. h. erzeugt \addplot {1/x};
mit dem Standard domain = -5:5
eine ziemlich hässliche Asymptote bei x = 0
sowie (mit dem Standard ymin
und ymax
) eine stark verzerrte Ansicht der Achsen. Aber die Einstellung restrict y to domain = -5:5
in diesem Diagramm eliminiert einfach die großen Werte, entfernt die Asymptote und skaliert das Bild auch wieder auf ein proportionales Quadrat zurück.
Oder alternativ ein parametrisches Diagramm wie \addplot ({exp(x)},{exp(-x)});
(eine lustige Art, dasselbe nur im ersten Quadranten zu zeichnen), das sich aufgrund der logarithmischen Verbindung zwischen den Werten im Diagramm und den Werten der Variablen nur schwer direkt anpassen lässt. Dafür domain
sind sowohl die Standard- als auch die Standardachsengrößen ungeeignet; ich lasse es normalerweise domain
so, wie es ist (was zu Zahlen führt, die in beiden Koordinaten zu groß sind) und setze restrict x to domain
dannrestrict y to domain
entsprechend ein, um das Bild schön zu trimmen. Das heißt nicht, dass es eine gute Idee ist,vollständigohne zu wissendomain
, da diese PunkteSindberechnet...nur nicht verwendet.
Diese Filterschlüssel unterscheiden sich von den Min- und Max-Schlüsseln, da sie die herausgefilterten Werte tatsächlich ignorieren, anstatt sie einfach aus dem Bild herauszuschneiden. Dies ist wichtig, wenn diese Werte größer sind als TeX verarbeiten kann.
Schließlich gibt es samples
oder sample at
, wobei letzteres sich gegenseitig ausschließt domain
und sagt, wie viele oder sogargenaubei welchen Werten x
Werte berechnet werden sollen. Dies kann eine Alternative zu den restrict to domain
Schlüsseln sein, wenn Sie die Beispiele sorgfältig auswählen, um außergewöhnliche Eingaben zu vermeiden. Sie sind auch nützlich, um die Darstellung um schnell variierende Stellen im Diagramm herum anzupassen, die sonst ziemlich ungleichmäßig aussehen würden. Diese interagieren auch mit den restrict to domain
Schlüsseln in dem Sinne, dass beispielsweise
\addplot[
domain = -5:5,
samples = 11,
restrict x to domain = -1:1,
restrict y to domain = -1:1
] ({exp(x)},{exp(-x)});
Es werden genau 11 Punkte ausgewertet, nämlich ({exp(-5)},{exp(5)})
bis ({exp(5)},{exp(-5)})
, aber nur diejenigen, deren beide Koordinaten im Intervall liegen, [-1,1]
werden dargestellt. Leider ist der einzige Punkt mit dieser Eigenschaft ({exp(0)},{exp(0)}) = (1,1)
, sodass Ihr Diagramm ziemlich leer sein wird. Die nicht aufgezeichneten Punkte werden nicht einmal zum Verankern interpolierender Kurven verwendet! Ein Allheilmittel sind die Filtertasten also nicht.
Meine Bilder neigen dazu,alledieser Tasten, da sie jeweils die Zeichnung unterschiedlich beeinflussen.