解决方案 1

解决方案 1

我想以这样的方式移动原点,因为下面的代码将导致圆圈出现在以红色标记的点的中心。

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{color}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[shift={(0,0)}]
\begin{axis}[ 
    ticks=none,
    axis lines = middle,
    axis line style={->},
    ymin=0,
    xmin=-3,
    xmax=3,
    xlabel={$Y$},
    ylabel={$\pi$}]
\addplot[black, domain=-2:2] {x+3};
\addplot[red,mark=*] coordinates {(0,3)};
\node[coordinate, pin=0:{target}] at (axis cs:0.5, 3){};
\end{axis}
\draw (0,0) circle[radius=1];
\end{tikzpicture}
\end{document}

答案1

解决方案 1

假设你已经知道要放置圆的坐标,即。你可以直接在该坐标处(axis cs:0,3)放置 来绘制一个圆,即node

\node[draw,circle,inner sep=0,miminum size=1cm] at(axis cs:0,3){};

解决方案 2

或者,您可以命名节点,例如target,然后可以(target)使用

\draw (target) circle[radius=1];

解决方案 3

假设您需要计算放置圆的坐标。那么您可以使用intersections库来计算该点:

  • {x+3}通过添加name path global=line命令来命名该行\addplot

    \addplot[black, domain=-2:2,name path global=line] {x+3};
    
  • 命名垂直轴

    \path[name path global=yaxis](axis cs:0,0)--(axis cs:0,5);
    
  • 并使用绘制圆圈

    \draw[name intersections={of=line and yaxis, by=target}](target)circle[radius=1];
    

完整代码

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{color}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[shift={(0,0)}]
\begin{axis}[ 
    ticks=none,
    axis lines = middle,
    axis line style={->},
    ymin=0,
    xmin=-3,
    xmax=3,
    xlabel={$Y$},
    ylabel={$\pi$}]
\addplot[black, domain=-2:2,name path global=line] {x+3};
% \path[name path global=yaxis](axis cs:0,0)--(axis cs:0,5);
\addplot[red,mark=*] coordinates {(0,3)};
\node(target)[pin=0:{target},draw,circle,inner sep=0,minimum size=1cm] at (axis cs:0,3){};
\end{axis}
% \draw (target) circle[radius=1];
% \draw[name intersections={of=line and yaxis, by=target}](target)circle[radius=1];
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

答案2

你所寻找的其实是你“抓住”轴的点。

反过来,这是每个 tikz 节点都可用的一般特性:每当你放置一个 tikz 节点时,你必须提供密钥at来说明将它放在哪里,并且你必须提供一个anchor在哪里抓取节点(即,节点内部的哪个位置要放置在 指定的位置at)。

对于轴来说也是如此(因为轴本质上是一种特殊的 tikz 节点)。

默认情况下,轴具有at={(0,0)}。我们只需采用anchor。为此,您只需将名称“target”分配给目标坐标并使用anchor=target

\documentclass{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\usepackage{color}
\usepackage{tikz}
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}[shift={(0,0)}]
\begin{axis}[ 
    anchor=target,
    ticks=none,
    axis lines = middle,
    axis line style={->},
    ymin=0,
    xmin=-3,
    xmax=3,
    xlabel={$Y$},
    ylabel={$\pi$}]
\addplot[black, domain=-2:2] {x+3};
\addplot[red,mark=*] coordinates {(0,3)};
\node[coordinate, pin=0:{target}] (target) at (axis cs:0, 3){};
\end{axis}
\draw (0,0) circle[radius=1];

\fill (0,0) circle[radius=1pt];
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容