• 使用NetworkX来进行数据可视化


    1 %matplotlib notebook
    2 
    3 import networkx as nx
    4 import matplotlib.pyplot as plt
    5 
    6 # 数据读取
    7 G = nx.read_gpickle('major_us_cities')
    1 # draw the graph using the default spring layout
    2 plt.figure(figsize=(10,9))
    3 nx.draw_networkx(G)

    1 # See what layouts are available in networkX
    2 [x for x in nx.__dir__() if x.endswith('_layout')]
    ['circular_layout',
     'random_layout',
     'shell_layout',
     'spring_layout',
     'spectral_layout',
     'fruchterman_reingold_layout']

    1 # Draw the graph using the random layout
    2 plt.figure(figsize=(10,9))
    3 pos = nx.random_layout(G)
    4 nx.draw_networkx(G, pos)

    1 # Draw the graph using the circular layout
    2 plt.figure(figsize=(10,9))
    3 pos = nx.circular_layout(G)
    4 nx.draw_networkx(G, pos)

    1 # Draw the graph using custom node positions
    2 plt.figure(figsize=(10,7))
    3 
    4 pos = nx.get_node_attributes(G, 'location')
    5 nx.draw_networkx(G, pos)

    1 # Draw the graph adding alpha, removing labels, and softening edge color
    2 plt.figure(figsize=(10,7))
    3 
    4 nx.draw_networkx(G, pos, alpha=0.7, with_labels=False, edge_color='.4')
    5 #取消标注
    6 plt.axis('off')
    7 plt.tight_layout();

     1 # Draw graph with varying node color, node size, and edge width
     2 plt.figure(figsize=(10,7))
     3 
     4 node_color = [G.degree(v) for v in G]
     5 node_size = [0.0005*nx.get_node_attributes(G, 'population')[v] for v in G]
     6 edge_width = [0.0015*G[u][v]['weight'] for u,v in G.edges()]
     7 
     8 nx.draw_networkx(G, pos, node_size=node_size, 
     9                  node_color=node_color, alpha=0.7, with_labels=False, 
    10                  width=edge_width, edge_color='.4', cmap=plt.cm.Blues)
    11 
    12 plt.axis('off')
    13 plt.tight_layout();

     1 # Draw specific edges and add labels to specific nodes
     2 plt.figure(figsize=(10,7))
     3 
     4 node_color = [G.degree(v) for v in G]
     5 node_size = [0.0005*nx.get_node_attributes(G, 'population')[v] for v in G]
     6 edge_width = [0.0015*G[u][v]['weight'] for u,v in G.edges()]
     7 
     8 nx.draw_networkx(G, pos, node_size=node_size, 
     9                  node_color=node_color, alpha=0.7, with_labels=False, 
    10                  width=edge_width, edge_color='.4', cmap=plt.cm.Blues)
    11 
    12 
    13 greater_than_770 = [x for x in G.edges(data=True) if x[2]['weight']>770]
    14 nx.draw_networkx_edges(G, pos, edgelist=greater_than_770, edge_color='r', alpha=0.4, width=6)
    15 
    16 nx.draw_networkx_labels(G, pos, labels={'Los Angeles, CA': 'LA', 'New York, NY': 'NYC'}, font_size=18, font_color='w')
    17 
    18 plt.axis('off')
    19 plt.tight_layout();



  • 相关阅读:
    记录一次阿里云服务器被攻击的经历
    post字符 特殊字符处理【转】
    forkjoin框架疑问记录
    centos7 安装 maven 和ant git 以及 rocketmq 4.2安装过程(安装成功,调用失败)
    IntelliJ Idea编译报错:javacTask: 源发行版 1.8 需要目标发行版 1.8
    记录一次json转换的经历
    maven项目在idea下右键不出现maven的解决办法
    Mac系统查看端口占用和杀死进程
    委托所想
    win8中的参数传递
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/8574358.html
Copyright © 2020-2023  润新知