关于这个相当老的问题(三年前)有没有办法清除 TikZ 中先前用名称 path global 定义的路径?我想知道 pgfplots v1.11(今天最新版本)中是否真的有一个很好的功能,可以让我删除全局定义的名称。
我的用例:我想在同一个 tikzpicture 中使用多个 addplot 命令,因为我的 matlab2tikz 在这方面给了我很好的结果。之后,我想用给定坐标周围的几个绘制的弧来微调这些图(脚本为此使用了 addplot table[])。我看到了 sdaau 的 [解决方案,用于自动命名表中的节点。这似乎有效,但我必须以某种方式进入 addplots 的范围。不知道怎么做。否则我会收到错误“shape MYNODE1 unknown”
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepackage{grffile}
\pgfplotsset{compat=newest}
\usetikzlibrary{plotmarks, calc, intersections}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=10cm,
height=10cm,
axis x line = middle,
axis y line = middle,
scale only axis,
xlabel={x [mm]},
ylabel={y [mm]},
title={$\text{n}_{\text{iterations}}\text{= 2}$}
]
\addplot+[
only marks,
mark=text,
text mark={\coordindex}, % empty for now; try also \coordindex
text mark as node=true,
text mark style={%
name=p\coordindex,
color=orange,
shape=circle,
draw,
inner sep=0pt,
minimum size=0pt,
align=center,
text width=5pt,
text depth=0pt
}
]
table{%
0 0
-79.9393 236.8749
143.0014 350.0007
200.0014 350.0000
200.0008 300.0000
};
\pgfplotsextra{
\path [name path=P--C-ext] (p0) -- ($(p1)!-50!(p0)$);
\draw (p0) -- (p1);
\path [name path=Rim] (p1.center) circle(50);
\path [draw, name intersections={of=P--C-ext and Rim}];
\pgfmathanglebetweenpoints{%
\pgfpointanchor{p1}{center}
}{%
\pgfpointanchor{intersection-1}{center}
}
\let\myendresult\pgfmathresult
\fill [fill=blue!50,draw=blue,thin,opacity=0.5] (p1) -- (intersection-1) arc [start angle=\myendresult,delta angle=-40,radius=50] -- cycle;
\fill [fill=blue!50,draw=blue,thin,opacity=0.5] (p1) -- (intersection-1) arc [start angle=\myendresult,delta angle=25,radius=50] -- cycle;
};
\end{axis}
\end{tikzpicture}
\end{document}
但是这个代码不能编译...所以第二次尝试是使用“路径名全局”,但是这样我会有几个重新定义的节点。
总结:我想在 addplot 命令中自动从坐标表中命名节点。我想在同一个 tikzpicture 中使用它们来将一些形状和弧线附加到它们。