pgfplots+gnuplots+smooth Seltsames Verhalten

Tabellen und Grafiken erstellen und anordnen


chiefrocker
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 29. Mai 2013, 10:42

pgfplots+gnuplots+smooth Seltsames Verhalten

Beitrag von chiefrocker »

Hi,
ich hab ein wenig mit pfgplots und gnuplots herumexperimentiert und dabei ist mir ein etwas seltsames Verhalten aufgefallen. Hierzu ein Minimalbeispiel:
\documentclass{article}

\usepackage{pgfplots}

\usepackage{tikz}
\usetikzlibrary{spy}

\begin{document}

\thispagestyle{empty}

\begin{tikzpicture}
\begin{scope}[spy using outlines={circle,
magnification=10,
size=1cm,
connect spies}]
\begin{axis}
\addplot[surf,smooth]gnuplot{norm(x)};
\addplot[smooth,surf]gnuplot{norm(x)};
\end{axis}
\spy [black] on (4.5,5.05) in node at (4,2);
\end{scope}
\end{tikzpicture}

\end{document}
Anscheinend muss ich mich entscheiden, gnuplot entweder mit surf oder mit smooth verwenden will. Verwende ich beides, wird zuerst genannte genommen und das andere ignoriert.
Weiß jemand, woran das liegen könnte oder bin ich mal wieder einfach zu doof?

LG chiefrocker

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 91
Registriert: Mi 5. Okt 2011, 18:24
Wohnort: Rheinbach

Beitrag von feuersaenger »

Hallo chiefrocker,

Du hast Recht: es ist entweder 'smooth' oder 'surf' moeglich, nicht beides. Hintergrund ist, dass beide die "Hoheit" ueber die Koordinaten fuer sich beanspruchen: "surf" ist optimiert fuer Matrikartige Daten oder sonstiges Patches waehrend 'smooth' ausschliesslich eine "informel glatte" 1d-Interpolation ist.

Es gibt derzeit keine wirkliche 2d Variante fuer smooth plots (ausser vielleicht glatt berandete patches mit der patchplots library; aber das ist dann immer noch unstetig an den uebergaengen von einem patch zum naechsten).

Wenn man 'surf' auf 1d plots anwendet, wird implizit auf 'mesh' umgeschaltet und man hat individuell gefaerbte segmente.

Es gibt eine stark eingeschraenkte moeglichkeit, 'surf' und 'smooth' zu kombinieren, indem man die patchplots library laedt, 'patch type=cubic spline, patch type sampling' aktiviert und, dafuer leider notwendig: die Funktion von pgfplots samplen laesst (details im Manual unter 'patch type sampling'). Das ist hier leider nicht anwendbar.

Abhilfe ist daher nur, samples hoch genug zu setzen, dass es trotzdem glatt aussieht. Das funktioniert natuerlich immer.

Mit liebem Gruss

Christian

Antworten