图形绘制时不显示箭头

图形绘制时不显示箭头

我尝试绘制一个图表来展示不同区域如何相互通信。最后,它应该将区域标记A1,...,A5为一个圆圈,并且它们之间会有许多标记箭头。下面最小工作示例中的代码产生了正确的样式,标签按我想要的方式显示,但箭头却没有。为什么不呢? 和 之间的箭头去哪儿A1A4

\documentclass[tikz]{standalone}
\usetikzlibrary{graphdrawing,graphs,quotes}
\usegdlibrary{circular}

\tikzset{
  every picture/.style={simple necklace layout, node distance=78pt},  
  new set=areas,
  area/.style n args={1}{set=areas, draw, circle,inner sep=1pt,node contents={A#1}},
  every edge/.style={rounded corners,nodes={font=\scriptsize,sloped}}
}

\begin{document}    
\begin{tikzpicture}
\foreach \i in {1,...,5} \node (A\i) [area={\i}] {};

\graph{
(areas);
A1 ->["communicate new standards"] A4
};
\end{tikzpicture}
\end{document}

我正在寻找一种解决方案,它将允许我将 tikzset 命令保留在 tikzpicture 和/或图形环境之外,因为最终文档中会有许多具有相同风格的图片。

答案1

样式的默认值every edge就是draw。在重新定义样式时,您遗漏了draw,因此实际上并未绘制路径。要么draw重新添加到样式中,要么使用every edge/.append style代替every edge/.styleappend style您的选项将添加到现有定义中,而不是替换它。

在此处输入图片描述

\documentclass[tikz]{standalone}
\usetikzlibrary{graphdrawing,graphs,quotes}
\usegdlibrary{circular}

\tikzset{
  every picture/.style={simple necklace layout, node distance=78pt},  
  new set=areas,
  area/.style n args={1}{set=areas, draw, circle,inner sep=1pt,node contents={A#1}},
  %%% use append style here,
  every edge/.append style={rounded corners, nodes={font=\scriptsize,sloped}}
}

\begin{document}    
\begin{tikzpicture}
\foreach \i in {1,...,5} \node (A\i) [area={\i}] {};

\graph{
(areas);
A1 ->["communicate new standards"] A4
};
\end{tikzpicture}
\end{document}

相关内容