创建具有两种不同布局的单个图形(例如,在外部圈出,内部无序)

时间:2019-07-19 17:17:55

标签: r graphviz diagrammer

我正在尝试使用graphviz生成一个图形,该图形会产生这种奇妙的可视化效果(!; https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwjcgcDdvcHjAhXG854KHaMHB2EQjRx6BAgBEAU&url=https%3A%2F%2Fwww.kathartman.com%2Fvisualizing-detroits-civic-tech-ecosystem&psig=AOvVaw1P66IWi0HPrMZQMmEP_MuS&ust=1563642864370970)。我当前的策略是产生一个结点外环(已实现),现在想将结点添加到可视化的中心(到目前为止还没有成功!)。

我研究了子图簇,这似乎是最干净的解决方案,但是还没有找到从杂技布局更改布局的方法。我还探讨了合并两个不同的图,但还没有找到一种方法来做到这一点。我还尝试了其他r包(例如visnetwork,networkd3,circlize),其中diagrammeR / graphviz似乎又是最明显的解决方案...

grViz("graph {

      graph [bgcolor = 'white',layout = 'circo',
      outputorder = 'edgesfirst']

      subgraph cluster0 {
      node [shape = 'rectangle',fontsize = 22,fontname = 'Helvetica',
      fontcolor = 'black', width = 3, height = 1.25, style = 'dotted',
      penwidth = 5]
      '1'
      '2'
      '3'

      node [shape = 'plaintext',fontsize = 16,fontname = 'Helvetica',
      width = 1, height = 1]
      '18'
      '5'

      node [shape = 'plaintext',fontsize = 16, fontname = 'Helvetica',
      fontcolor = 'black']
      '4' 
      '9' 
      '6'

      node [fillcolor = OldLace,
      fontsize = 11,fontsize = 14]
      '7' 
      '8'
      '21'
      '22'
      '23'
      '10'
      '20' 


      edge [weight = 0.5,penwidth = 4, fontname = 'Helvetica',
      fontsize = '12', len = '1.5', color = 'gray80',
      arrowsize = '0.5']

      '1'--'18'
      '18'--'4'
      '4'--'7'
      '7'--'8'
      '8'--'2'
      '2'--'5'
      '5'--'9'
      '9'--'21'
      '21'--'22'
      '22'--'23'
      '23'--'3'
      '3'--'6'
      '6'--'10'
      '10'--'20'
      '20'--'1'}

      subgraph cluster1 {
      # Projects

      node [fontname = 'Helvetica',
      fontsize = '7', shape = 'circle',
      fixedsize = 'true', width = '0.5',
      style = 'filled', fillcolor = 'aliceblue',
      fontcolor = 'gray50']
      '11'
      '12'
      '13'
      '14'
      '15'
      '16'
      '17'
      '19'


      edge [weight = 0.25,fontname = 'Helvetica',
      fontsize = '12', len = '1.5', color = 'gray80',
      arrowsize = '0.5']

      '6'--{'10' '17' '19'} 
      '7'--{'11' '19'}
      '8'--{'12' '13' '14' '15'} 
      '9'--{'12' '13' '14' '16'}
      }

      }")

目标是第二个子集群(或第二个图形)在第一个子集群内形成一个网络,同时仍显示它们之间的边缘。目前,第2个子类填充到圆的外部,并保持为圆型布局

0 个答案:

没有答案