我正在尝试绘制一个有向图,其中每个顶点和每个箭头都可以用特定颜色单独着色。我有一个代码大多作品:
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}
\begin{tikzpicture}[
decoration = {markings,mark=at position .5 with {\arrow{Stealth[length=2mm]}}},
Bullet/.style = {circle, fill=#1,label=#1,draw=black!80, line width=0.2mm,
inner sep=2.4pt, node contents={},},
every edge/.style = {draw, postaction=decorate}
]
%
\node (a) at (0,2) [Bullet=red, label=below left:$a$];
\node (b) at (2,4) [Bullet=MidnightBlue, label=above:$b$];
%
\path
(a) edge [Plum] (b) ;
\end{tikzpicture}
\end{document}
问题是,当编译时(使用 Overleaf),它几乎产生了我想要的结果,除了还在节点顶部打印节点(顶点)颜色的名称:
我做错了什么导致这个结果?我该如何删除颜色名称?谢谢阅读!
为了解释装饰设置,我希望边缘中间有一个箭头(如图所示),并且我还希望节点(顶点)上有一个黑色轮廓,这也是我试图在本节中写的内容。
答案1
正如 @SandyG 在评论中所说的那样,您在Bullet/.style
第一次使用颜色名称,fill=#1
第二次使用颜色名称label=#1
。fill=#1
设置填充颜色。将label=#1
颜色名称输出为标签。因此,删除label=#1
, 可以解决您的问题:
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}
\begin{tikzpicture}[
decoration = {markings,mark=at position .5 with {\arrow{Stealth[length=2mm]}}},
Bullet/.style = {circle, fill=#1,draw=black!80, line width=0.2mm,
inner sep=2.4pt, node contents={},},
every edge/.style = {draw, postaction=decorate}
]
%
\node (a) at (0,2) [Bullet=red, label=below left:$a$];
\node (b) at (2,4) [Bullet=MidnightBlue, label=above:$b$];
%
\path
(a) edge [Plum] (b) ;
\end{tikzpicture}
\end{document}