我正在尝试在使用 生成的图表的两侧添加其他节点smartdiagram
。理想情况下,我希望将节点放置在圆形图中和b1
之间边缘的左侧,以及和之间边缘的右侧。使用绝对坐标增加附加节点之间的距离/尝试放置它们仍然会导致圆形图位于两个节点的右侧。可以这样做吗?a
b
b2
a
d
我的示例代码
\documentclass[border=10pt]{standalone}
\usepackage{tikz, smartdiagram}
\usetikzlibrary{shapes.multipart}
\tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
\begin{document}
\begin{tikzpicture}[node distance = 4cm, auto]
\node [state, rectangle split parts=2] (b1) at (0,5) {text \nodepart{two} one};
\node [state, rectangle split parts=2] (b2) at (5,5) {text \nodepart{two} two};
\end{tikzpicture}
\smartdiagram[circular diagram] {a, b, c, d}
\end{document}
我想也许TikZ:从 smartdiagram 包向圆形图添加节点可以帮忙,但我不知道如何添加节点,即
\smartdiagramadd[circular diagram]{a, b, c, d}{
left of module1/\node [state, rectangle split parts=2]}
答案1
smartdiagram
为节点命名。因此,您可以使用叠加层连接它们。在我看来,唯一不太吸引人的方面是,在overlay
模式下绘制的内容不会增加边界框,您需要手动执行此操作。这解释\hspace*{2cm}
了
\documentclass[border=10pt]{standalone}
\usepackage{tikz, smartdiagram}
\usetikzlibrary{shapes.multipart}
\tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
\tikzset{every picture/.append style={remember picture}}
\begin{document}
\hspace*{2cm}\smartdiagram[circular diagram] {a, b, c, d}\hspace*{2cm}%
\begin{tikzpicture}[overlay]
\path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text \nodepart{two} one};
\path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text \nodepart{two} two};
\end{tikzpicture}
\end{document}