TikZ 和 PGFPlots 的坐标系混淆

TikZ 和 PGFPlots 的坐标系混淆

因此,我正在使用 TikZ 和 pgfplots 为我的讲义绘制图表。我的问题是关于以下代码中使用的两个坐标系:

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
\begin{axis}[axis lines = center, xlabel = $x$, ylabel =$y$, ymax=3, ymin=-1, xmax=5, xmin=-1 ,samples=500, ytick={1,2}, xtick={1,2,3,4}]
% Code for the graph.
\addplot[blue, domain=2.05:4.5, thick] {-x + 4};
\addplot[blue, domain=-0.5:1.95, thick] {x};
\draw[blue] (300,297) circle[radius=1.5pt];
\node[above right] at (300,297) {\footnotesize $y=f(x)$};
\end{axis}
\end{tikzpicture}

\end{document}

问题:为什么可以用轴的坐标绘制图形的线,但必须使用其他系统来指定节点的坐标?

问题:另一个系统是什么? 能很容易说出“节点系统”中的 (0,0) 相对于轴上的 (0,0) 的位置吗?

理想情况下,我希望能够使用轴坐标来表示图表的所有方面。但是,任何帮助都非常好!

提前致谢。

答案1

正如 Torbjørn T. 所提到的问题下方的评论您还可以通过添加到序言中将axis坐标系用于 TikZ 内容。\pgfplotsset{compat=1.11}

为了(希望)回答剩下的问题,请查看以下代码及其注释。

更多详细信息请参阅 PGFPlots 手册 (v1.17)。请查看

% used PGFPlots v1.17
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        % use this `compat` level or higher to use `axis cs:` as default
        % coordinate system for TikZ stuff as well.
        compat=1.11,
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        % where to place the `axis` node in the TikZ coordinate system
        % (the default coordinate is (0,0)) ...
        at={(5mm,5mm)},
        % ... with the `anchor`
        % (the default is `south west`)
        anchor=outer south east,
        name=plot,
        % ---------------------------------------------------------------------
        xlabel=$x$,
        ylabel=$y$,
        legend pos=outer north east,
    ]
        \addplot {x^2};
        \legend{$x^2$}
    \end{axis}

    % show the origin of the TikZ coordinate system
    \fill [red,radius=2pt]   (0,0) circle;
    % show the place where the `axis` node was placed
    \draw [green,radius=4pt] (plot.outer south east) circle;
    % "prove" that the `axis` node is really placed at the given coordinate
    \draw [blue] (0,0) -- +(5mm,5mm);
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容