如何用 LaTeX 绘制坐标系?

如何用 LaTeX 绘制坐标系?

我想绘制一个这样的坐标系:

在此处输入图片描述

我想指定坐标系的宽度和高度以及原点的起始位置(左上角)。我还想用箭头指定 x 轴和 y 轴。此外,x 轴和 y 轴的末端应使用文本“200px”表示。

我是 LaTeX 初学者,不知道该怎么做。

有人可以推荐一个乳胶包吗?

答案1

TikZ 包很棒!我做了以下事情:

\documentclass{article}
\usepackage{tikz}
\begin{document}

    % TikZ picture with origin upper left
    \begin{tikzpicture}[yscale=-1] 
        % 4x4 grid
        \draw (0, 0) grid (4, 4);
        % origin point
        \draw [color=blue, fill=blue] (0, 0) circle (0.1);
        % x-axis
        \draw [thick,->] (0, 0) -- (4.5, 0);
        % y-axis
        \draw [thick,->] (0, 0) -- (0, 4.5);
        % origin label
        \node at (-0.1, -0.5) {(0, 0)};
        % x-axis label
        \node at (4.5, -0.5) {200px};
        % y-axis label
        \node at (0, 5) {200px};
    \end{tikzpicture}

\end{document}

输出:

在此处输入图片描述

很有帮助: TikZ 简介

答案2

Tikz 或 pstricks 功能更强大,但 LaTeX 具有内置坐标绘图系统,因此您确实不需要为此加载外部包(尽管我加载了颜色)

在此处输入图片描述

\documentclass{article}
\usepackage{color}
\begin{document}

\setlength\unitlength{10pt}

\begin{picture}(20,10)(0,-10)
\thicklines
\put(0,0){\line(1,0){20}}
\put(0,0){\line(0,-1){10}}
\put(0,-10){\line(1,0){20}}
\put(20,0){\line(0,-1){10}}
\put(0,0){\circle*{.3}}
\put(0,0){\vector(1,0){4}}
\put(0,0){\vector(0,-1){4}}
\thinlines
\put(0,0){\makebox(0,0)[tl]{\tiny(0,0)}}
\put(4,0){\makebox(0,0)[cb]{\tiny x}}
\put(0,-4){\makebox(0,0)[cr]{\tiny y`}}
\color[rgb]{.8,.8,.8}
\multiput(1,0)(1,0){19}{\line(0,-1){10}}
\multiput(0,-1)(0,-1){9}{\line(1,0){20}}

\end{picture}%


\end{document}

答案3

使用 PSTricks。

\documentclass[pstricks,border=18pt]{standalone}
\usepackage{pst-plot}
\addtopsstyle{gridstyle}{gridlabels=0pt,griddots=0}
\begin{document}
\begin{pspicture}[showgrid](5,-5)
    \psaxes[labels=none,ticks=none]{->}(0,0)(5,-5)[200px,90][200px,-90]
    \pscircle*(0,0){2pt}
    \uput[90](0,0){$(0,0)$}
\end{pspicture}
\end{document}

在此处输入图片描述

也可以使用 PSTricks 创建非正交坐标系,如下所示。这里,OI和分别是与和轴OJ平行的单位向量。xy

\documentclass[pstricks,border=18pt]{standalone}
\usepackage{pst-eucl}

\addtopsstyle{gridstyle}{gridlabels=0pt}
\begin{document}
\begin{pspicture}[showgrid](5,-5)
    \pstGeonode[PosAngle={135,45,180}]
        (0,0){O}
        (1;-15){I}
        (1;-75){J}
    \pstOIJGeonode[PointName=none,PointSymbol=none](5,0){I'}{O}{I}{J}(0,5){J'}
    \pstOIJGeonode[PosAngle={-45,45},PointName={{R(4,2)},{A(4,0)},{B(0,2)}},PointNameSep=2em](4,2){R}{O}{I}{J}(4,0){A}(0,2){B}
    \psline[linecolor=cyan]{->}(O)(I')
    \psline[linecolor=cyan]{->}(O)(J')
    \uput[-15](I'){$x$}
    \uput[-75](J'){$y$}
    \psline[linecolor=orange](A)(R)(B)
\end{pspicture}
\end{document}

在此处输入图片描述

它可能在 TikZ 或其他系统中不可用。

警告

的语法\pstOIJGeonode有点不常见,如下所示。

\pstOIJGeonode(x1,x2){A1}{O}{I}{J}(x2,y2){A2}...(xn,yn){An}

第一个点A1必须紧跟在后面,\pstOIJGeonode但其余的点A2,...,An必须紧跟在后面{O}{I}{J}。我不知道作者为什么要使用这种奇怪的语法。

相关内容