Ich versuche diese Funktion in ein Graph einzubinden. Allerdings gelingt es mir nicht mal, die Funktion ohne alles zu generieren:

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage[normalem]{ulem} 
\usepackage{tikz} 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}
        \begin{axis}[grid=major,ymax=2500,xmax=2500]
          \addplot[no markers, blue, restrict y to domain=0:1714, samples=30000] { 2412 - 2.795e-10*(x^4)};
        \end{axis}
\end{tikzpicture}

\end{document}

Kann es sein, dass es mit der absurd kleinen Zahl 2.795e-10 zu tun hat? Wie kann ich die Funktion dennoch plotten? -> funktioniert! Siehe unten

EDIT GnuPLOT läuft nicht. -> funktioniert nicht.

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage{amsmath}
\usepackage[normalem]{ulem} 
\usepackage{tikz} 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}
        \begin{axis}[grid=major,ymax=2450,xmax=2500]
          \addplot[no markers, blue,restrict y to domain=0:1714, 
            samples=30000] gnuplot [domain=0:2500] { 2412 - 2.795e-10*(x^4)};
        \end{axis}
\end{tikzpicture}

\end{document}

Läuft nicht:

Öffne in Overleaf
! Package pgfplots Error: Sorry, the gnuplot-result file 'MWE2funktion.pgf-plot
.table' could not be found. Maybe you need to enable the shell-escape feature?

Shell-escape ist aber drin:

alt text

Und GNUplot befindet sich im Pfad:

alt text

gefragt 15 Mär '17, 22:05

SF6's gravatar image

SF6
15953440
Akzeptiert-Rate: 0%

bearbeitet 16 Mär '17, 10:07

Ok, danke. Gilt das auch, wenn ich jetzt mit einer anderen Funktion Probleme habe? Ist das auch eine neue Frage. Will ja nicht die Seite vollspammen ;) (Sonst editier ich das raus oben, das Bild habe ich angepasst).

(16 Mär '17, 09:03) SF6

"Dimension too large"-Probleme mit pgfplots hatten wir bereits.

Sogar mehrfach (wobei ich absichtlich nicht auf pgfplots beschränkt habe, sondern pgf einschließe), u. a.: http://texwelt.de/wissen/fragen/2364 und http://texwelt.de/wissen/fragen/19682 und http://texwelt.de/wissen/fragen/12779.

(16 Mär '17, 09:15) saputello

Ich vermute stark, dass es in der Tat am Wertebereich liegt. Um festzustellen, welche Werte TeX in diesem Fall produziert, könnte man versuchen, diese in einer Schleife mit pgfmath zu berechnen und auszugeben. Ich habe mich stattdessen darauf konzentriert eine Lösung zu finden.

pgfplots bietet für all die Fälle, in denen die seine eigenen Rechenfähigkeiten an die Grenzen stoßen, die Möglichkeit die Berechnungen beispielsweise mit gnuplot extern auszuführen. Dazu müssen shell escapes aktiviert sein. Da Du laut Originalbeispiel wohl x-Werte bis 2500 haben willst, habe ich dabei für gnuplot Option domain=0:2500 angegeben:

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}
        \begin{axis}[grid=major,ymax=2450,xmax=2500]
          \addplot[no markers, blue,restrict y to domain=0:1714, 
            samples=30000] gnuplot [domain=0:2500] { 2412 - 2.795e-10*(x^4)};
        \end{axis}
\end{tikzpicture}

\end{document}

Und erhalte mit pdflatex:

erster Versuch mit gnuplot und pdflatex

Wie man am Ergebnis sieht, könnte man den Bereich weiter einschränken. Außerdem ist die Anzahl der samples in dem Fall auch fast absurd hoch. Allerdings habe ich stattdessen die Option restrict y to domain entfernt und bin auf lualatex umgestiegen. Mit

Öffne in Overleaf
% Funktioniert nicht in Overleaf, da das nicht automatisch lualatex verwendet
\documentclass{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}
        \begin{axis}[grid=major,ymax=2450,xmax=2500]
          \addplot[no markers, blue,
            samples=30000] gnuplot [domain=0:2500] { 2412 - 2.795e-10*(x^4)};
        \end{axis}
\end{tikzpicture}

\end{document}

erhalte ich dann deutlich besseren Plot:

erster Versuch mit gnuplot und lualatex

Ein vergleichbares Ergebnis erhält man aber auch mit pdflatex, wenn man den extrem hohen samples-Wert korrigiert:

Öffne in Overleaf
% Funktioniert auch in Overleaf mit pdflatex
\documentclass{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}
        \begin{axis}[grid=major,ymax=2450,xmax=2500]
          \addplot[no markers, blue,
            samples=100] gnuplot [domain=0:2500] { 2412 - 2.795e-10*(x^4)};
        \end{axis}
\end{tikzpicture}

\end{document}

Noch besser wird es IMHO, wenn man auch ymax=2450 und xmax=2500 weglässt und das ganze einfach pgfplots überlässt:

weitere Verbesserung

Die für das Problem überflüssigen Pakete habe ich übrigens in allen Beispielen weggelassen.

Permanenter link

beantwortet 16 Mär '17, 08:14

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 16 Mär '17, 08:25

Danke, habe allerdings Probleme das nachzustellen: Er findet bei mir gnuplot nicht.

Für das VM habe ich texworks verwendet (sonst texmaker). Aber da will ich nur ungern was anfassen.

Ich habe oben das Problem erweitert.

(16 Mär '17, 08:36) SF6

... und noch mal ein Kommentar. Der Code mit pgfplot läuft sauber durch. Dann waren es also die Samples?

Danke. Dann werde ich wohl GNUPlot nicht brauchen.

(16 Mär '17, 08:51) SF6
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×298

gestellte Frage: 15 Mär '17, 22:05

Frage wurde gesehen: 5,582 Mal

zuletzt geändert: 16 Mär '17, 10:07