\draw 与轴之间的相对位置

\draw 与轴之间的相对位置
\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_1P_2和x_o˙I 将使用具有选项、和 的单独函数B绘制:addplotonly marksnodes near coordspoint 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}

包含曲线和单点的图形

相关内容