我有以下在三维图中绘制二维函数的代码。
\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)});