pgfplots: Einen Bereich zwischen zwei Kurven in 3D füllen

pgfplots: Einen Bereich zwischen zwei Kurven in 3D füllen

Ich versuche, eine Abbildung zu erstellen, die verschiedene Arten von Linienintegralen erklärt. Dabei handelt es sich um eine Kurve in 3 Dimensionen (die dicke Linie), die Kurve in der xy-Ebene, der sie folgt (die gestrichelte Linie), und die Projektionen in den xz- und yz-Ebenen. Ich möchte den Bereich zwischen der dicken schwarzen Kurve und der gestrichelten Kurve ausfüllen, aber was ich auch versuche, ich erhalte entweder keine Füllung oder die Füllung, die in der Abbildung unten gezeigt wird. Ich habe versucht,Füllen zwischenPaket, aber das scheint mit 3D-Diagrammen nicht zu funktionieren. Alle Ideen, wie man dies erreichen kann, sind dankbar.

Hier ist ein MWE

\documentclass{standalone}

\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}[
            declare function={mynorm(\m,\s) = 1/(2*\s*sqrt(pi))*exp(-    (x-\m)^2/(2*\s^2));}
            ]

\begin{axis}[
        view={135}{45},
        enlargelimits=false,
        grid=major,
        domain=0:16,
        y domain=0:4,
        samples=50,
        xlabel=$x$,
        ylabel=$y$,
        ]

    \addplot3 [domain=0:4, samples=50, samples y=0, smooth, fill=gray!60] (x,0,{mynorm(1,0.5)}) \closedcycle;
    \addplot3 [domain=0:16, samples=50, samples y=0, smooth, fill=gray!60] (0,x,{mynorm(1,0.5)}) \closedcycle;

    \addplot3 [thick,domain=0:4, samples=50, samples y=0, smooth, fill=gray] (x,x^2,{mynorm(1.0,0.5)});
    \addplot3 [domain=0:4, samples=50, samples y=0, smooth, dashed] (x,x^2,0);

\end{axis}

\end{tikzpicture}

\end{document}

was das Ergebnis erzeugt

Bildbeschreibung hier eingeben

Antwort1

Funktioniert bei mir tatsächlich fillbetween. Man muss die Formen nur auf verschiedene Ebenen legen, damit sie sichtbar sind und sich nicht gegenseitig überdecken:

\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}[
    declare function={mynorm(\m,\s) = 1/(2*\s*sqrt(pi))*exp(-    (x-\m)^2/(2*\s^2));}
  ]

\begin{axis}[
    view={135}{45},
    enlargelimits=false,
    grid=major,
    domain=0:16,
    y domain=0:4,
    samples=50,
    xlabel=$x$,
    ylabel=$y$,
  ]

  \addplot3 [domain=0:4, samples=50, samples y=0, smooth, fill=gray!60, on layer=axis grid] (x,0,{mynorm(1,0.5)}) \closedcycle;
  \addplot3 [domain=0:16, samples=50, samples y=0, smooth, fill=gray!60, on layer=axis grid] (0,x,{mynorm(1,0.5)}) \closedcycle;

  \addplot3 [name path=A,thick,domain=0:4, samples=50, samples y=0, smooth] (x,x^2,{mynorm(1.0,0.5)});
  \addplot3 [name path=B,domain=0:4, samples=50, samples y=0, smooth, dashed, on layer=axis foreground] (x,x^2,0);
  \addplot3 [gray] fill between [of=A and B];
\end{axis}

\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen