Seite 1 von 1

pgfplots+gnuplots+smooth Seltsames Verhalten

Verfasst: Do 30. Mai 2013, 23:19
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

Verfasst: Mo 10. Jun 2013, 21:17
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