- 这个问题是关于 中的 3D 坐标系
pgfplots
。 - 问题 1:我想要
xlabel
“另一边”(x dir = reverse,
已经尝试过了)。 - 问题2:这点不太重要(有就好)。我想要像手绘一样的透视图(y 和 z 完美交叉,第三维,深度,用 45 度线表示:x),请参阅手绘中的“备注”。补充说明:在手绘中我使用了不同的标签(这是典型的汽车坐标系)。但我可以通过命名
xlabel
"y"
等来伪造它。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width = 80mm,
height = 80mm,
axis lines = center,
no marks,
axis line style = {latex-latex, ultra thick}, %
unit vector ratio = 1 1 1,
ticks = none,
xmin = -1,
xmax = 1,
ymin = -1,
ymax = 1,
zmin = -1,
zmax = 1,
xlabel = $x$,
ylabel = $y$,
zlabel = $z$,
]
% No plot
\end{axis}
\end{tikzpicture}
\end{document}
有关的
答案1
对于第一个请求,您可以使用交换和x dir=reverse
的位置。但是,这不会移动。在这里您可以使用xmin
xmax
xlabel
every axis x label/.style={at=(ticklabel cs:-0.07)}
开始ticklabel cs:
于0
轴的一端,结束于1
轴的另一端,因此0.07
标签刚好位于轴的“起点”之外。将它们放在一起,并添加一个显示 x 和 y 正第一象限的图,并使用相同的想法调整ylabel
,我们得到
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width = 80mm,
height = 80mm,
axis lines = center,
no marks,
axis line style = {latex-latex, ultra thick}, %
unit vector ratio = 1 1 1,
ticks = none,
xmin = -1,
xmax = 1,
ymin = -1,
ymax = 1,
zmin = -1,
zmax = 1,
x dir=reverse,
every axis x label/.style={at={(xticklabel cs:-0.07)}},
every axis y label/.style={at={(yticklabel cs:1.07)}},
xlabel = $x$,
ylabel = $y$,
zlabel = $z$,
]
\addplot3 [surf, z buffer=sort, samples=15, variable=\u,
variable y=\v, domain=0:1, y domain=0:1, opacity=0.5]
({u},{v},0);
\end{axis}
\end{tikzpicture}
\end{document}
不幸的pgfplots
是不支持透视绘图。