如何使用圆形布局在 Netlogo 中可视化两个(或更多)子网

How to visualize two (or more) subnetworks in Netlogo using circle layout

我想知道是否可以可视化两个不同的子网络(例如,由白色海龟组成,另一个由橙色海龟组成)以及它们之间的一些链接。 例如,在视觉上,它们应该看起来像两个具有布局圆圈 (layout-circle) 的网络。 目前我只能想象一个由橙色和白色海龟组成的网络(给你一个想法:https://www.dreamstime.com/royalty-free-stock-photos-people-join-merge-social-two-circles-as-network-business-groups-image30895498)。

任何帮助都会很棒。 谢谢。

下面显示了我正在尝试执行的操作的示例。

to WS [N k p] 
  create-types1 N [
    set color white
    setxy random-xcor random-ycor
  ]

  create-types2 N [
    set color orange
    setxy random-xcor random-ycor
  ]

  layout-circle sort types1 max-pycor * 0.9

  let lis (n-values (k / 2) [ [i] -> i + 1 ])
  ask types1 [
    let w who
    foreach lis [ [i] -> create-link-with (type1 ((w + i) mod N)) ]
  ]
  rewire p

end

to rewire [p] 
  ask links [
    let rewired? false
    if (random-float 1) < p
    [
      let node1 end1
      if [ count link-neighbors ] of node1 < (count types1 - 1)
      [
        let node2 one-of types1 with [ (self != node1) and (not link-neighbor? node1) ]
        ask node1 [ create-link-with node2 [ set rewired? true ] ]
      ]
    ]
    if (rewired?)
    [
      die
    ]
  ]
end

上面的代码应该创建一个小世界网络,其中有两种类型的品种:type1type2,以颜色区分。 我不想在同一个网络中可视化类型,而是想为 type1 创建一个小世界网络,为 type2 创建另一个小世界网络。这两个网络将通过两个类型之间可能存在的一些链接链接起来。

您是否正在寻找类似的东西? 我分别创建了两个圆圈,然后将它们移动到所需的位置,并分别为这两种类型创建了链接。

breed [types1 type1]
breed [types2 type2]

to WS [N k p] 
  create-types1 N [
    set color white
  ]

  create-types2 N [
    set color orange
  ]

  layout-circle sort types1 max-pycor * 0.5
  ask types1 [setxy xcor - 5.5 ycor]
  
  layout-circle sort types2 max-pycor * 0.5
  ask types2 [setxy xcor + 5.5 ycor]

  let lis (n-values (k / 2) [ [i] -> i + 1 ])
  
  ask types1 [
    let w who
    foreach lis [ [i] -> create-link-with (type1 ((w + i) mod N)) ]
  ]
  
  ;let links1 link-set [my-links] of types1
  
  ask types2 [
    let w who
    foreach lis [ [i] -> create-link-with (type2 ((w + i) mod N + N)) ]
  ]
  
  ;let links2 link-set [my-links] of types2

end