我一直在努力画一个思维导图,其中连接条的阴影是避免并且连接栏的颜色由我指定。
例如,我想绘制两个由红色连接条连接的绿色概念。
这有许多应用,通常当条的颜色代表一个选项时(例如,红色条表示真,绿色条表示假)。
显然,总是存在手动命名节点并手动连接它们的肮脏选项,但这对大型思维导图来说是不可行的。我只想指定每个连接栏的颜色并避免阴影。
有人知道怎么做吗?
答案1
并不像我原先想象的那么简单(除非我忽略了什么东西),但下面我定义了一个connection bar color
键来完成这项工作(我想严格来说应该称之为circle connection bar color
)。
请注意,为了避免 TeX 数学不准确造成的间隙,连接条在节点顶部绘制得非常轻微,因此必须outer sep
为概念节点设置以考虑到这一点(例如,0.5pt
似乎大致在边缘上)。我已将其设置为存在间隙,因为我认为在这种情况下它看起来相当不错。
连接栏颜色也可由任何子节点继承。
\documentclass[border=1pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap}
\begin{document}
\tikzset{%
connection bar color/.style={
every circle connection bar/.append style={
append after command={[fill=#1]}
}
},
connection false/.style={
connection bar color=red!30!purple,
},
connection true/.style={
connection bar color=green!40!orange
},
}
\tikz[mindmap, concept color=yellow!50!orange,
every concept/.style={
text=black,
font=\sf,
outer sep=1.5pt% Have to determine by trial and error
},
level 1 concept/.append style={
level distance=5cm
},
level 2 concept/.append style={
level distance=4cm
}
]
\node [concept] {Like cheese?}
child [grow=30, connection true] {
node [concept] {Whiskers?}
child [grow=30] {% NB connection true inherited
node [concept] {Mouse}
}
child [grow=-30, connection false] {
node [concept] {Human}
}
}
child [grow=-30, connection false] {
node [concept] {Cat}
};
\end{document}