数据可视化实验报告之图分析(Gephi与Python的使用).pdf
实验七图分析(Gephi与Python的使用)
小组成员:
一、实验目的
1.熟悉Python图可视化;
2.熟悉Gephi的使用;
3.将Gephi与Python结合实现可视化。
二、实验要求
1.学生提前熟悉资料;
2.由小组成员集体完成实验,成员分块写实验报告,代码后写注释。
三、实验内容及步骤
1.悲惨世界人物关系图(Python实现)
代码
importnetworkxasnx
#用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能
importpylab
frompylabimportrcParams
#pylab模块是一款由python提供的可以绘制二维,三维数据的工具模块
#指定此图片的大小,和像素
rcParams[figure.figsize]=12,12
G=nx.read_gml(C:/Users/Administrator/Desktop/悲惨世界/lesmiserables.gml)
#读取gml文件,记为G
G8=G.copy()#G的内容复制给G8
dn=nx.degree(G8)#得到G8内节点的度
#选出G8内所有节点的度小于8的节点,并删除这些节点
forninlist(G8.nodes()):
ifdn[n]=8:
G8.remove_node(n)
pos=nx.spring_layout(G8)#布局指定节点排列形式
nx.draw(G8,node_size=10,edge_color=b,alpha=0.45,font_size=9,pos=pos)
#画图,节点大小10,边的颜色为蓝色,透明度0.45,节点标签字体大小9
labels=nx.draw_networkx_labels(G8,pos=pos)#绘制网络G8的边图
pylab.show()
结果展示
2.科幻作者关系图(Python与Gephi与实现)
代码
importcsv
nodemap={}#创建一个空的列表
#此函数功能是:找、添加节点,并计数
defaddNode(name):
ifnameinnodemap:
node=nodemap[name]
#在nodemap中,假如有此节点,此节点计数+1
else:
nodemap[name]=node
#如果没有该节点,则记录该节点名称,数量记为1,添加到nodemap
return
科幻作者科幻作者
#打开txt文件,把它作为inputfile文件,r为只读模式
#从csv文件中读取数据,记录为datareader,分隔符:横向制表符
next(datareader,None)
#跳过第一行数据
#过每一行数据,添加起点,和目标点
forrowindatareader:
addNode(row[0])
addNode(row[1])
asnodefile:
#打开文件记为nodefile文件,以w的方式,的方式,为不写入空行
#从csv文件中写入数据,记录为formatter,分隔符:横向制表符
第一行写为IDCount
#把nodemap内所有节点,名称和数量写入formatter内
fornameinnodemap:
node=nodemap[name]
结果展示
3.红楼梦人物词云图
代码
importjieba.analyse
fromosimportpath
fromscipy.miscimportimread
importmatplotlibasmpl
importmatplotlib.pyplotasplt