在三维图中绘制二维函数

在三维图中绘制二维函数

我有以下在三维图中绘制二维函数的代码。

\documentclass[border=3pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepackage{tikz-3dplot}
\pgfmathdeclarefunction{normal}{2}{%
\pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{document}
\begin{tikzpicture}
 \begin{axis}[samples=30,
domain=15:25,
xlabel={$x$},
zmin=0,zlabel={$z$},
samples y=0, ytick={7,8,9,10},ylabel={$y$},
area plot/.style={
    fill opacity=0.75,
    draw=none,
    fill=blue!70,
    mark=none,
    smooth
}
]
\addplot3 [area plot] (x,10,{normal(20,1)});
\addplot3 [area plot] (x,9,{normal(20,1)});
\addplot3 [area plot] (x,8,{normal(20,1)});
\addplot3 [area plot] (x,7,{normal(20,1)});
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

但是我想交换 x 轴和 y 轴。我想让每个 x 值都沿 y 轴呈现一条正态曲线。这可能吗?

答案1

如果我正确理解了你想要做的事情,你可以交换绘图表达式中的前两个坐标,就像这样

\addplot3 [area plot] (10,x,{normal(20,1)});
\addplot3 [area plot] (9 ,x,{normal(20,1)});
\addplot3 [area plot] (8 ,x,{normal(20,1)});
\addplot3 [area plot] (7 ,x,{normal(20,1)});

相关内容