首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法可以使用图中的fdp布局在同一集群中的节点之间和在不同集群中的节点之间有不同的边缘样条?

是否有一种方法可以使用图中的fdp布局在同一集群中的节点之间和在不同集群中的节点之间有不同的边缘样条?
EN

Stack Overflow用户
提问于 2020-07-02 00:07:59
回答 1查看 286关注 0票数 1

我正在创建一个包含多个集群的图表。属于同一簇的节点之间有边缘,属于不同簇的节点之间有边缘。我正在使用fdp布局。对于集群中的节点是否有一种边缘路由,对于属于不同集群的节点是否有另一种边缘路由?

例如,我想对前者使用splines=ortho,对后者使用splines=compound。我试过这样做,但是生成的图似乎只使用主图中指定的splines值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 04:44:59

我很确定这不能用一个pass -样条是一个图形级别的属性。然而,我认为这可以用5关技术来完成:

通过< file

  • move >E 120gvpr(或E 122pythonE 223?)编辑输入cluster
  1. run
  2. 中的所有簇内边缘,将edgekeep=1添加到每个

fdp -Tdot -Gsplines=ortho (适用于all),以添加节点和边缘路由H 119运行步骤1输出。to

  • pin所有节点nodepin=true在图的每一个边的
  • 开始处,将 pos 属性复制到(新的)
  • 步骤2,通过fdp -s -Tdot -Gsplines=compound输出--这将覆盖所有边缘pos值

H 143通过E 144gvpr>gvpr>e 245(或E 146python>E 247?)将keeppos!="")

  • run pos替换为pos (if 步骤4通过neato -s -n2 输出)

呼!听起来很恶心,但似乎很管用

附注:步骤3和步骤5需要-s选项来解决缩放问题。

p.p.s.因为需要固定节点,所以仅使用fdpneato (不是dot)。

下面是一个命令行:

代码语言:javascript
复制
f=multispline.gv;
F=`basename $f .gv`
fdp -Gsplines=true -Tdot $f | 
gvpr -c 'N{pin="true"}E[keep=="1"]{keeppos=$.pos}'| 
fdp -s -Gsplines=ortho -Tdot | 
gvpr -c 'E[keeppos!=""]{pos=keeppos}' | 
neato -s -n2 -Tsvg >oo.svg
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62687030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档