【问题标题】:Plot size of each node according to dictionary根据字典绘制每个节点的大小
【发布时间】:2020-04-08 10:02:02
【问题描述】:

到目前为止,我有以下代码:

source = ['0','0','0','0','0','0','0']
destination = ['1','2','3','4','5','6','7']

FB_network_graph = pd.DataFrame({ 'from':source, 'to':destination})
G=nx.from_pandas_edgelist(FB_network_graph, 'from', 'to')

plt.figure(figsize = (100,100))
nx.draw(G, with_labels=True)

我想绘制一个图表,其中节点“0”的大小为 7,节点“1”-“7”的大小为 1。

【问题讨论】:

    标签: python graph networkx graph-theory


    【解决方案1】:

    您似乎想根据degree 调整node_size。为此,您可以从G.degree 的结果中定义一个字典,并通过查找字典来根据相应的节点度数设置大小:

    scale = 300
    d = dict(G.degree)
    nx.draw(G, node_color='lightblue', 
            with_labels=True, 
            nodelist=d, 
            node_size=[d[k]*scale for k in d])
    

    或者,您可以只定义自定义字典,以在node_size 中设置相应的节点大小。对于这种特定情况,例如:

    d = {str(k):1 for k in range(1,8)}
    d['0'] = 7
    

    【讨论】:

    • 谢谢!!有用。我还可以问一下python中是否有任何库/方法可以帮助绘制直方图,其中x轴=节点度数,y轴=度数为x的节点的分数。是否也可以在具有各种幂律指数的同一直方图上绘制幂律曲线?
    • 建议您为此提出一个新问题。当你这样做时请在这里ping我,我很乐意回答:) @ZhenKai
    • 我已将问题发布在新标签中,标签如下:stackoverflow.com/questions/61099850/… 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2015-07-13
    • 2018-06-26
    • 1970-01-01
    • 2018-12-10
    相关资源
    最近更新 更多