我的网络相当复杂。
<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>
我想为网络添加标签,这是我设法做到的,但是由于节点数量的原因,它看起来并不好。
反正有可能获得每五个标签吗?这可能会使它更具可读性。 我对6点钟左右的怪异半圆的标签特别感兴趣。
或者,有一种方法可以绘制出中心度最高的节点和相关边。
另一种方法是制作允许缩放的交互式图形,我不知道该怎么做。
代码:
Number of nodes: 2435
Number of edges: 7497
Average degree: 6.1577
答案 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()显示图形的,因此请注意底部的小放大类。这样一来,您可以根据需要放大多次。如果足够,那么您甚至无需执行任何操作。