坐标绘制不正确

坐标绘制不正确

我正在尝试创建图形(附件),但当我这样做时,我的点无法正确绘制。例如,(0,2),绘制 (0,-1)(或非常接近)。我不确定我做错了什么。我在 Overleaf 和 TexShop 中绘制了图形,看看我是否做错了,但无法弄清楚。

任何帮助,将不胜感激。

\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest,width=6cm}



\begin{document}

\begin{tikzpicture}
                    \begin{axis}[
                        axis lines=middle,
                        y axis line style={opacity=0},ytick=\empty,
                        xmin=0,
                        xmax=10,
                        ymin=-3,
                        ymax=3,
                        ]
                    \end{axis}
                        \draw[very thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
                \end{tikzpicture}

\end{document}

答案1

TikZ 使用厘米作为默认单位。Pgfplots 使用自己的坐标系来将图形放入可用空间中。这两个系统通常不一样。

如果您想在当前 pgfplots 坐标系中给出 tikz 坐标,您可以在坐标前加上前缀axis cs:(这适用于所有可用compat选项):

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=6cm}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    axis lines=middle,
    y axis line style={opacity=0},ytick=\empty,
    xmin=0,
    xmax=10,
    ymin=-3,
    ymax=3,
  ]
    \draw[very thick,blue] (axis cs:0,2) -- (axis cs:2,-2) -- (axis cs:6,1) -- (axis cs:9,-.5);
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

  • 不建议混合pgfplots使用纯tikz语法来在图表中画线。
  • 如果出于某些(未知)原因需要这样做,则通过tikz命令进行绘制应该在axis环境内。如果​​不是,则它将厘米视为默认单位,而不是axis环境内的缩放距离。
  • 使用最新版本pgfplots(如果我没记错的话,在版本 1,13 之后)您不需要使用axis cs:选项来定义线坐标:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18, width=6cm}

\begin{document}
    \begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    ytick=\empty,
    xmin=0,     xmax=10,
    ymin=-3,    ymax=3,
            ]
\draw[thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
\end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

使用仅使用语法即可获得相同的结果pgfplots

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18, width=6cm}

\begin{document}
    \begin{tikzpicture}
\begin{axis}[
    axis lines=middle,
    ytick=\empty,
    xmin=0,     xmax=10,
    ymin=-3,    ymax=3,
            ]
\addplot +[thick, no marks] coordinates { (0,2) (2,-2) (6,1) (9,-0.5)};
\end{axis}
    \end{tikzpicture}
\end{document}

答案3

我不喜欢pgfplots,但这是最简单的tikz作品:

\documentclass{article}
\usepackage{graphicx} % Required for inserting images
\usepackage{tikz}

\begin{document}
    
    \begin{tikzpicture}
        \draw[-latex] (0,0)--(10.3,0) node[right] () {$x$};
        \draw[very thick,blue] (0,2) -- (2,-2) -- (6,1) -- (9,-.5);
    \end{tikzpicture}
    
\end{document}

输出:

在此处输入图片描述

相关内容