考虑以下图片:
创建 Tikz 图片时,X 和 Y 位置为原点,并继续按照图片 A 所表示的方式进行。但如果我希望它像图片 B 那样工作怎么办?
我可以使用 Y 的负值,但如果我希望它为正值(因此如果数字增加,所表示的点就会下降)...这可能吗?
换句话说,我可以将原点设置为页面的左上角吗?
答案1
cs
通过使用系统,这很容易实现TikZ
。您甚至可以定义自己的坐标系(例如,您想要一个三角形网格,您实际上可以这样做)。
但是对于轴的线性缩放,您可以执行以下操作:
\begin{tikzpicture}[y=-1cm]
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{tikzpicture}
相反的是:
\begin{tikzpicture}%
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{tikzpicture}
请注意,您也可以在范围内应用此功能:
\begin{tikzpicture}
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\begin{scope}[y=-1cm,xshift=2cm] % Notice that we shift the entire `scope`
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{scope}
\end{tikzpicture}
最后一个将产生:
页面引用
要了解页面上的相对位置,请参阅:在 TikZ 中相对于页面的定位
答案2
您还可以使用或的yscale=-1
选项:tikzpicture
scope
\documentclass{article}
\usepackage{tikz}
\begin{document}
Inside a \verb|scope|:
\begin{tikzpicture}
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\begin{scope}[yscale=-1,xshift=2cm] % Notice that we shift the entire `scope`
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{scope}
\end{tikzpicture}
\vspace{2cm}
Inside \verb|tikzpicture|:
\begin{tikzpicture}[yscale=-1]
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{tikzpicture}
\end{document}
答案3
除了 zertoth 的答案之外:甚至可以改变基向量,而不仅仅是它的y={(x,y)}
长度
\begin{tikzpicture}[y={(-0.5cm,-1cm)}]
\draw (0,0) -- (1,0) node[below] {$x$};
\draw (0,0) -- (0,1) node[left] {$y$};
\end{tikzpicture}