我如何制作 pgfplots 来从下图所示的视图显示坐标系。方格纸无关紧要,但正如您所见,x_1 轴应相对于方格纸通过正方形的对角线。假设两个正方形是 x_2 和 x_3 轴的一个单位,那么 x_3 轴的一个单位应该只是一正方形。
操作视图选项并没有得到预期的结果:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmax=2.5,ymax=2.5,zmax=1.45,xlabel=$x_1$,ylabel=$x_2$,zlabel=$x_3$,axis lines=center,view={135}{45}]
\addplot3[
opacity=0.3,
surf,
shader=flat,
samples=50,
domain=-2:2,y domain=-2:2]
{exp(-(x^2+y^2))};
\end{axis}
\end{tikzpicture}
\end{document}
输出:
这里 x_2 轴不在右边。
答案1
Percusse 的评论提供了关键词“斜投影”。通过谷歌搜索,我找到了以下解决方案:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
x={(-0.3535cm,-0.3535cm)},
y={(1cm,0.0cm)},
z={(0cm,1cm)},
xmax=2.5,ymax=2.5,zmax=1.45,
xlabel=$x_1$,ylabel=$x_2$,zlabel=$x_3$,
axis lines=center]
\addplot3[
opacity=0.3,
surf,
shader=flat,
samples=50,
domain=-2:2,y domain=-2:2]
{exp(-(x^2+y^2))};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
您可以格式化轴,并显示您选择的坐标:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[font=\tiny]
\begin{axis}[
axis x line = middle,
axis y line = middle,
axis z line = middle,
view={150}{35},
domain =-5:5,
y domain =-5:5,
restrict z to domain =0:20,
xmax =5,
xmin =-5,
ymax =5,
ymin =-5,
zmax = 20,
zmin = 0,
xtick={-4,...,4},
ytick={-4,...,4},
ztick={0,4,...,20}
]
\draw (4,4,16) node[above left] {\normalsize $A$};
\draw[dashed] (4,4,16)--(0,0,16);
\draw[dashed] (4,4,16)--(4,4,0);
\draw[dashed] (4,0,0)--(4,4,0)--(0,4,0);
\filldraw (4,4,16) circle(1pt);
\filldraw (4,4,0) circle(1pt);
\filldraw (4,0,0) circle(1pt);
\filldraw (0,4,0) circle(1pt);
\filldraw (0,0,16) circle(1pt);
\end{axis}
\end{tikzpicture}
\end{document}
并且 view={150}{35} 命令工作正常,第一部分改变 XOY 平面,发送旋转 Z 轴。
https://youtu.be/00S9l7pGkQY在本视频中,我展示了一些情节操作。视频语言是格鲁吉亚语,但所有内容都清晰地显示出来。