如何在Graphviz中划掉节点?
我想指出的是,应该有一个节点,但目前在这个过程中还没有。 直观地说,我想划掉它,如下图所示(现在在Paint中手动完成):如何在Graphviz中划掉节点?,graphviz,Graphviz,我想指出的是,应该有一个节点,但目前在这个过程中还没有。 直观地说,我想划掉它,如下图所示(现在在Paint中手动完成): Graphviz中是否有可用于此操作的节点属性?我找不到可用于执行所需操作的属性或节点形状,但有两种方法: 在Graphviz之外构建一个图像(带有文本和X),并使用图像属性将图像用作节点(是的,如果您想经常这样做,这是一个难题): b[image=“myB.png”] 对于每个X'd out节点,从.ne到.sw和.nw到.se(请参见下文)添加两条新边,每个边都具有
Graphviz中是否有可用于此操作的节点属性?我找不到可用于执行所需操作的属性或节点形状,但有两种方法:
E[straightline==1]{
int i, n;
string pt[int];
double x1, y1, x2, y2, xI1, yI1, xI2, yI2;
n=split($.pos, pt, " ");
for (i=0;i<=1;i++){
if (match(pt[i],"e,")>=0){
print ("// BEFORE: ", pt[i]);
pt[n-1]=substr(pt[i],2);
print ("// AFTER: ", pt[i]);
pt[i]=pt[i+1];
}
}
for (i=0;i<=1;i++){
if (match(pt[i],"s,")>=0){
pt[0]=substr(pt[i],2);
}
}
sscanf (pt[0], "%f,%f", &x1, &y1);
sscanf (pt[n-1], "%f,%f", &x2, &y2);
xI1=x1+(x2-x1)*.3;
yI1=y1+(y2-y1)*.3;
xI2=x1+(x2-x1)*.7;
yI2=y1+(y2-y1)*.7;
$.pos=sprintf("%s %.3f,%.3f %.3f,%.3f %s", pt[0], xI1, yI1, xI2, yI2, pt[n-1]);
}
很抱歉,很复杂,但它可以工作。虽然可以提供我所需的确切输出,但需要我了解如何在我的工作流程中引入gvpr
,这需要一些时间
与此同时,我提出了一种只使用点的方法,这种方法近似于根据我的目的划掉一个节点
在下图中,我想划掉节点一些进程:
digraph graphname {
rankdir=LR
node [fillcolor="lightblue3", style="filled"]
a
c
d
b [label="Some\nprocess"]
a -> b -> c
a -> d -> c
{rank=same a;d}
}
为此,我改变了:
某些进程的节点样式
节点具有硬
- 使用删除线删除文本
- 将
fontcolor
和节点轮廓设为灰色阴影
有向图图形名称{
rankdir=LR
节点[fillcolor=“lightblue3”,style=“filled”]
A.
C
D
节点[fillcolor=“lightblue3;0.5:白色”,style=“filled”,fontcolor=“gray50”,color=“gray50”,gradientrange=100]
b[标签=]
a->b->c
a->d->c
{rank=相同的a;d}
}
我应该提到,常见问题解答中记录了“neato-n2”,gvpr计划正在用从边缘开始到边缘结束的直线代替边缘布线。谢谢,这很有创意。我从来没有研究过gvpr,也许我应该。与此同时,我发现了一个不同的、更轻松的解决方法(将在一分钟后发布)。
digraph X{
graph [outputorder=edgefirst]
b [ label="X me"]
a -> b -> c
a -> d
d -> c
e -> f
g -> i -> k
edge [color="#ff000080" penwidth=2] // note translucent color
b:ne -> b:sw [straightline=1]
b:se -> b:nw [straightline=1]
edge [color="green" penwidth=2]
e:n -> e:s [straightline=1]
f:w -> f:se [straightline=1]
edge [color="orange" penwidth=2]
g:n -> g:se [dir=back straightline=1]
edge [color="blue" penwidth=2]
g:n -> g:sw [dir=back straightline=1]
i:e -> i:w [dir=none straightline=1]
k -> k:s [dir=both straightline=1]
}
digraph graphname {
rankdir=LR
node [fillcolor="lightblue3", style="filled"]
a
c
d
b [label="Some\nprocess"]
a -> b -> c
a -> d -> c
{rank=same a;d}
}
digraph graphname {
rankdir=LR
node [fillcolor="lightblue3", style="filled"]
a
c
d
node [fillcolor="lightblue3;0.5:white", style="filled", fontcolor="gray50", color="gray50", gradientangle=100]
b [label=<<s>Some<br/>process</s>>]
a -> b -> c
a -> d -> c
{rank=same a;d}
}