NetworkX中的标签

时间:2018-12-04 15:53:58

标签: python-3.x label networkx

我的网络相当复杂。

<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>


 
<div class="demo">
 
<form action="#">
 
  <fieldset>
    <label for="speed">Select a speed</label>
    <select name="speed" id="speed">
      <option>Slower</option>
      <option>Slow</option>
      <option selected="selected">Medium</option>
      <option>Fast</option>
      <option>Faster</option>
    </select>
  
    <label for="salutation">Select a title</label>
    <select name="salutation" id="salutation">
      <option disabled selected>Please pick one</option>
      <option>Mr.</option>
      <option>Mrs.</option>
      <option>Dr.</option>
      <option>Prof.</option>
      <option>Other</option>
    </select>
  </fieldset>
</form>
</div>

我想为网络添加标签,这是我设法做到的,但是由于节点数量的原因,它看起来并不好。

Network with labels 反正有可能获得每五个标签吗?这可能会使它更具可读性。 我对6点钟左右的怪异半圆的标签特别感兴趣。

或者,有一种方法可以绘制出中心度最高的节点和相关边。

另一种方法是制作允许缩放的交互式图形,我不知道该怎么做。

代码:

    Number of nodes: 2435
    Number of edges: 7497
    Average degree:   6.1577

1 个答案:

答案 0 :(得分:0)

您可以通过分别绘制图形元素而不是像现在通过kafka那样一劳永逸地绘制图形来完成一些您要的事情。

具体来说,尝试将图形分为三个部分:

nx.draw_networkx

在这种情况下,通过为nx.draw_networkx_nodes(G, pos=pos) nx.draw_networkx_edges(G, pos=pos) nx.draw_networkx_labels(G, pos=pos, labels=l) 函数指定labels参数,可以控制要显示的WHICH标签。这应该是由实际标签值作为键的字典,并且它可以映射到您想要的任何内容-本身或其他内容。似乎您不必全部指定它们,因此您可以以编程方式确定该词典中的内容并省略其余内容:

draw_networkx_labels

所以这应该只打印一个标签,而不是其余标签。

另外,非常简单,由于您是通过plt.show()显示图形的,因此请注意底部的小放大类。这样一来,您可以根据需要放大多次。如果足够,那么您甚至无需执行任何操作。