因此,我正在使用 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)。请查看
- 第 4.17.1 节“访问图形元素中的轴坐标”和
- 第 4.19.1 节“基本对齐”。
% 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}