Seite 1 von 1
pgfplot 1/x plotten
Verfasst: Mo 18. Feb 2013, 14:56
von Tu
Liebe community,
ich versuche gerade die einfache Funktion 1/x mit pgfplots zu erstellen. Leider zeigt diese mir das wahre vom Ei.
hier ein Minimalbeispiel:
\documentclass[paper=a4,12pt]{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot gnuplot
[id=exp,mark=none,domain=-5:5]{1/(x)};
\addlegendentry{Test}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Der Graph sieht halt recht eigenartig aus.
Wisst ihr vllt. voran das liegt.
Liebe Grüße
Tu
Verfasst: Mo 18. Feb 2013, 16:49
von Epllus
Mathe ist leider schon etwas her, soll es so aussehen?
\documentclass[paper=a4,12pt]{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot
[id=exp,mark=none,domain=-5:-0.1, samples=100]
{1/x};
\addplot
[id=exp,mark=none,domain=0.1:5, samples=100]
{1/x};
\addlegendentry{Test}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Da ich mich aber noch erinnern kann, dass die beiden nicht verbunden sein dürfen, hab ich die Funktion aufgesplittet.
Wenn du die beiden in einer haben möchtest, achte auf den Befehl "samples=100" mit dem funktionierts.
Hoffe es hilft
Epllus
Verfasst: Di 19. Feb 2013, 10:41
von Tu
Vielen Dank Epllus. Das hat mir geholfen.
Aber was wurde durch die option "samples" geändert ?
Verfasst: Di 19. Feb 2013, 12:51
von Epllus
Es ist schwer zu erklären (und ganz genau weiß ich es auch nicht), aber bei samples gibt es eine Faustregel:
Je höher samples ist, desto genauer wird der Graf gezeichnet.
So besitzt der Graf bei samples=30 viele Ecken und Kanten, bei samples=100 dagegen, ist der Graf schon runder und hat kleinere Ecken, ab samples=500 sieht man keine Ecken und Kanten mehr.
Warum genau das Ganze ohne samples so aussieht wie es ohne samples aussieht … ist eine gute Frage.
Epllus
Verfasst: Di 19. Feb 2013, 13:11
von Tu
Achso okay... jedenfalls funktioniert es. Danke nochmals

Verfasst: Di 19. Feb 2013, 20:28
von feuersaenger
Hallo,
wenn die funktion 1/x im Bereich -5:5 gezeichnet werden soll, liegt naheliegenderweise x=0 dazwischen. 1/0 ist jedoch nicht definiert.
Wenn Du nun der Wert von samples ungerade ist, faellt einer der samples genau auf die 0 - und da 1/0 nicht defniert ist, wird der weggelassen. Wenn der Wert von samples gerade ist, dann wird x=0 nie gesampelt und man sieht nicht, dass es da eine Singularitaet gibt.
Pgfplots hat einen switch, wie es mit so einen Fall kontrolliert: "unbounded coords". Mit "unbounded coords=jump" unterbricht es automatisch die Anzeige und laesst die Funktion ueber die Stelle "springen". Mit "unbounded coords=discard" wird die fragliche Stelle einfach weggeschmissen und die danebenliegenden Punkte werden verbunden.
Mit liebem Gruss
Christian
Verfasst: Do 21. Feb 2013, 11:04
von Tu
Vielen Dank für die Information feuersaenger. Ich werde es sicherlich noch oft brauchen.
Liebe Grüße
Tu