在下面的代码中,我想将点 (1,1) 标记为“P”。 (我知道这并不令人兴奋。它是我想要绘制的图形的一部分。)我有\node[above right, outer sep=2pt] (1,1) {P};
执行此操作的代码。 TikZ
将标签放在原点的右上方。
为什么 TikZ 没有将标签放在 (1,1) 的右上方?
我在笛卡尔平面上放置了一个网格。使用outer sep=2pt
,我预计部分网格会被标签 P 遮挡。我希望字母“P”在图表上突出,我认为如果部分网格线被遮挡,它就会突出。
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning,intersections,quotes}
\begin{document}
\begin{tikzpicture}
\draw[yellow] (-1.25,-1.25) grid[xstep=0.5, ystep=0.5] (2.25,2.25);
\draw[draw=gray!30,latex-latex] (0,2) +(0,0.5cm) node[above right] {$y$} -- (0,-1) -- +(0,-0.5cm);
\draw[draw=gray!30,latex-latex] (-1,0) +(-0.5cm,0) -- (2,0) -- +(0.5cm,0) node[below right] {$x$};
\filldraw (1,1) circle[radius=1.5pt];
\node[above right, outer sep=2pt] (1,1) {P};
\end{tikzpicture}
\end{document}
答案1
您可以使用 来遮挡节点后面的网格线fill=white
。您也可以使用 来执行此操作,pin
这将从点到标签绘制一条线。或者您可以使用label
类似但没有线条的选项。
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{shapes,positioning,intersections,quotes}
\begin{document}
\begin{tikzpicture}
\draw[yellow] (-1.25,-1.25) grid[xstep=0.5, ystep=0.5] (2.25,2.25);
\draw[draw=gray!30,latex-latex] (0,2) +(0,0.5cm) node[above right] {$y$} -- (0,-1) -- +(0,-0.5cm);
\draw[draw=gray!30,latex-latex] (-1,0) +(-0.5cm,0) -- (2,0) -- +(0.5cm,0) node[below right] {$x$};
\filldraw (1,1) circle[radius=1.5pt];
\node [fill, draw, circle, minimum width=3pt, inner sep=0pt, pin={[fill=white, outer sep=2pt]135:P}] at (.5,1) {};
\node[above right=10pt of {(1,1)}, outer sep=2pt,fill=white] {P};
\end{tikzpicture}
\end{document}