NetworkX学习笔记——基本功能使用

时间:2021-02-09 16:20:12

实现以下目标:

1、环境搭建

2、创建图

2.1 手动创建图

2.2 读取文件创建图

3、绘制图

4、分析图,以k-shell和k-core为例



1、环境搭建

      安装环境说明和安装包下载  http://download.csdn.net/detail/suncherrydream/9687631

      另外可以参照 http://blog.sina.com.cn/s/blog_720448d301018px7.html进行下载安装

      需要导入的包

      import networkx as nx       #复杂网络需要用的包

      import matplotlib.pyplot as plt     #画图用

      import os      #读取文件用

2、创建图

2.1 手动创建无向图

       G=nx.Graph()   #创建无向图

       G.add_edge('a','d')   #向无向图中添加节点a和节点d,且a,d之间有一条连边

       G.add_edge('b','d')

       G.add_edge('c','d')

       G.add_edge('c','f')

       G.add_edge('d','e')

       G.add_edge('d','f')

       G.add_edge('e','f')

2.2 读取txt文件创建图

       txt文件格式:同一行中的两个元素表示两个节点,且这两个节点之间存在连边

       NetworkX学习笔记——基本功能使用

       读取方式如下:

       os.chdir('F:\\')   #注意要导入包 os

       filename='k_shell_test.txt'

       G=nx.Graph()

       with open(filename) as file:

           for line in file:

               head, tail = [str(x) for x in line.split()]  #如果节点使用数组表示的可以将str(x)改为int(x)

               G.add_edge(head,tail)

    生成的G同2.1中相同


3、绘制图

   plt.figure() #创建一幅图

   nx.draw(G , node_color='y' , with_labels=True, ,node_size=800)    #node_color='y'表示绘制节点的颜色为黄色,默认为红色;with_labels=True使节点上显示节点的名字,默认为False;node_size设置节点大小,默认为300

   plt.show()

NetworkX学习笔记——基本功能使用

   NetworkX提供了一系列样式参数,可以用来修饰和美化图形,达到我们想要的效果。常用的参数包括:

      - `node_size`:  指定节点的尺寸大小(默认是300,单位未知,就是上图中那么大的点)
      - `node_color`:  指定节点的颜色 (默认是红色,可以用字符串简单标识颜色,例如'r'为红色,'b'为绿色等,具体可查看手册)
      - `node_shape`:  节点的形状(默认是圆形,用字符串'o'标识,具体可查看手册)
      - `alpha`: 透明度 (默认是1.0,不透明,0为完全透明) 
      - `width`: 边的宽度 (默认为1.0)
      - `edge_color`: 边的颜色(默认为黑色)
      - `style`: 边的样式(默认为实现,可选: solid|dashed|dotted,dashdot)
      - `with_labels`: 节点是否带标签(默认为True)
      - `font_size`: 节点标签字体大小 (默认为12)
      - `font_color`: 节点标签字体颜色(默认为黑色)


4、利用networkX分析图的k-shell和k-core

     k_shell(G,k=n)得到的是由所有k-shell值为n节点组成的G的子图

     k_core(G,k=n)得到的是由所有k-shell值不小于n的节点组成的G的子图

    下面为官方文档中对两个方法的说明:

     networkX中提供k_shell(G,k=None,core_number=None)

Parameters:
  • G (NetworkX graph) – A graph or directed graph.
  • k (int, optional) – The order of the shell. If not specified return the main shell.
  • core_number (dictionary, optional) – Precomputed core numbers for the graph G.
Returns:

G – The k-shell subgraph

Return type:

NetworkX graph

   networkX中提供k_core(G,k=None,core_number=None)

Parameters:
  • G (NetworkX graph) – A graph or directed graph
  • k (int, optional) – The order of the core. If not specified return the main core.
  • core_number (dictionary, optional) – Precomputed core numbers for the graph G.
Returns:

G – The k-core subgraph

Return type:

NetworkX graph

    利用两个方法分析前面创建的G

NetworkX学习笔记——基本功能使用

NetworkX学习笔记——基本功能使用



参考文献:

官网:http://networkx.readthedocs.io/en/networkx-1.11/overview.html

http://blog.sina.com.cn/s/blog_720448d301018px7.html

http://www.cnblogs.com/fstang/archive/2013/06/01/3113352.html

http://blog.csdn.net/ztf312/article/details/47615303