【发布时间】:2020-08-16 07:01:10
【问题描述】:
在过去的 15 分钟里,我一直在谷歌上搜索,试图找到这个问题的答案。但我似乎无法弄清楚。
我的任务是为我在工作中开发的一些应用程序构建一些小流程图。他们不需要任何花哨的东西,因为他们将在 vizio 中将其转换为他们喜欢的格式。他们甚至说我们可以用笔和纸来做。所以我想我会玩一下graphviz/dot。
他们有 6 种他们喜欢使用的预定义形状/颜色,所以我想我会使用它们。我已经在 dot 中构建了它们……但如果我打算多次重复使用它们,我想找到一种方法将它们保存为一种模板。
这可能吗?
例如...这些是预定义的形状。
digraph G {
node [color="#4271C6"]
process [
shape=Mrecord,
style=filled, fillcolor="#E1F4FF",
label="{1. Process\l | Description}"];
subprocess [
shape=record,
style=filled, color="#FFFFFF", fillcolor="#A5A5A5",
label="| Sub-Process |"];
database [
shape=cylinder, color="#18589A",
label="Database"];
inputoutput [
shape=polygon,
style=filled, fontcolor=white,
fixedsize=true, skew=0.3, margin=0,
width=2, label="Input / Output"];
file [
shape=folder,
label="File"];
external [
shape=box3d,
label="External entity"];
}
【问题讨论】:
-
您可以使用子图/集群给一组节点相同的样式,见graphviz.org/Gallery/directed/cluster.html
-
也许我理解错了,但我不确定这是否适用于我的要求?我在问是否有一种方法可以重复使用我在上面布置的形状而不必每次都复制粘贴整个节点?或者你是说创建我的所有节点,然后使用集群来定义它们的样式(又名,cluster_file,cluster_database 等)?这可以工作,直到我需要使用集群进行布局。除非它允许您将节点放置到多个集群中而无需复制显示。
-
是的,您为每种样式创建集群并在其中添加节点。不确定是否可以将节点放置在多个集群中。
-
感谢您的提示。虽然我没有完全使用它,但它让我找到了答案。显然,您可以在多个子图中存在一个节点。我从那个开始,分离了视觉设置和标签。然后我在没有子图的情况下对其进行了测试,这也有效!查看我添加的答案。效果很好。谢谢!