\begin{tikzpicture}
\begin{axis}[
axis x line = center,
axis y line = center,
xmin = -3.0,
xmax = 5.0,
ymin = -3.0,
ymax = 5.0]
\addplot[
domain = 0.1:5.0,
] {1/x};
\end{axis}
\foreach \Point/\PointLabel in {(4,4)/x_0, (3,1)/B, (1,4)/P_1, (3,4)/P_1}
\draw[fill=black] \Point circle (0.05) node[above right] {$\PointLabel$};
\end{tikzpicture}
上述代码将生成以下图表:
我试图在环境x0
中的点 (1,1) 周围添加文本axis
。但似乎axis
环境和之间的坐标系tikzpicture
不同。
您能帮我解释一下环境错位问题吗?
以及如何优雅地将x0
标签放在环境下的(1,1)坐标处?axis
答案1
点P_1
、P_2
和x_o˙I 将使用具有选项、和 的单独函数B
绘制:addplot
only marks
nodes near coords
point meta=explicit symbolic
\documentclass[border=3.141592]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines = center,
xmin = -3.0, xmax = 5.0,
ymin = -3.0, ymax = 5.0,
]
%
\addplot [domain = 0.1:5.0, samples=50] {1/x};
\addplot [only marks, mark=*, % <---
nodes near coords, % <---
point meta=explicit symbolic] % <---
coordinates {(1,1) [$x_0$] % given coordinate
(1,-2)[$B$] % coordinate estimated from your picture
(1,4) [$P_1$] % <---
(-2,4)[$P_1$]}; % <---
\end{axis}
\end{tikzpicture}
\end{document}
使用的坐标(除了x_0
)是我从您的相关图像中估算出来的。如果需要,请根据需要更正它们的位置。
答案2
更好的方法是 @Zarko 的回答。您也可以像现在这样创建点,但要在里面axis
。唯一的问题是您不能foreach
以这种方式使用。如果您需要循环,则需要使用\pgfplotsinvokeforeach
和朋友 - 请参阅手册第 8.1 章。
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=center,
xmin=-3.0, xmax=5.0,
ymin=-3.0, ymax=5.0,
]
\addplot[domain=0.1:5.0, samples=50, smooth] {1/x};
\fill (1,1) circle[radius=0.05] node[above right] {$x_0$};
\end{axis}
\end{tikzpicture}
\end{document}