我想将点设置到 3D 坐标系中,但轴有问题。现在我必须使用 (-1.1,2.0,1.1),但数据点的格式为 (-110,200,110)。我该如何更改轴,以便可以设置点而无需除以 100(大约 200 个点)?
坐标范围为:x = 0 ... 250,y = -110 ... 110,z = 0 ... 250
在这篇MWE中,只有八点:
\documentclass[ngerman]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=2,x={(0.7cm,0.7cm)},y={(3cm,0cm)}, z={(0cm,1cm)}]
\draw[->, >=latex] (-1.10,0,0) -- (1.10,0,0) node[above]{$y$};
\draw[->, >=latex] (0,0,0) -- (0,2.00,0) node[below]{$x$};
\draw[->, >=latex] (0,0,0) -- (0,0,2.50) node[left]{$z$};
\shadedraw plot [only marks, mark=*, mark size=1.5pt, mark options={fill=gray}] coordinates{
(-1.10,2.00,1.10)
(-1.10,2.00,1.30)
(-1.10,2.00,1.50)
(-1.10,2.00,1.70)
(-1.10,2.00,1.90)
(-1.10,2.00,2.10)
(-1.10,2.00,2.30)
(-1.10,2.00,2.50)
};
\end{tikzpicture}
\end{document}
答案1
首先,我看不出有什么理由不在pgfplots
这里使用,因为这个问题基本上不存在。但让我们假设有这样的原因。在这种情况下,您很容易引入dimension too large
错误。这是在当前设置中避免它们的一种方法,但我认为这通常不会起作用(在 中会起作用pgfplots
)。您可以引入缩放的基向量。
\documentclass[ngerman]{standalone}
\usepackage{tikz}
\tikzset{scaled unit vectors/.code={
\path (#1,0,0) coordinate (ex) (0,#1,0) coordinate (ey)
(0,0,#1) coordinate (ez);},scaled cs/.style={x={(ex)},y={(ey)},z={(ez)}}}
\begin{document}
\begin{tikzpicture}[scale=2,x={(0.7cm,0.7cm)},y={(3cm,0cm)}, z={(0cm,1cm)}]
\draw[->, >=latex] (-1.10,0,0) -- (1.10,0,0) node[above]{$y$};
\draw[->, >=latex] (0,0,0) -- (0,2.00,0) node[below]{$x$};
\draw[->, >=latex] (0,0,0) -- (0,0,2.50) node[left]{$z$};
\tikzset{scaled unit vectors=0.01}
\shadedraw[scaled cs]
plot [only marks, mark=*, mark size=1.5pt, mark options={fill=gray}] coordinates{
(-110,200,110)
(-110,200,130)
(-110,200,150)
(-110,200,170)
(-110,200,190)
(-110,200,210)
(-110,200,230)
(-110,200,250)
};
\end{tikzpicture}
\end{document}