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