本次推送用到的数据是
上海市共享单车数据
(公众号内资料下载的资料一期),用到的字段主要有:orderid、start_location_x、start_location_y、end_location_x、end_location_y。
1 获取Networkx需要的结构
先把共享单车数据处理成(源节点,目标节点,权重)的格式,其他格式也可以构造复杂网络,这里是为了对应共享单车的数据结构(O——>D)。
import
SOD =shape_data
G = nx.from_pandas_edgelist(SOD, 'ID', 'ID2', 'D', create_using=nx.DiGraph())#构造Grahp
pos = nx.spring_layout(G)#
pylab.figure(1)
nx.draw(G, pos, with_labels=False, node_size=100, node_color="skyblue", node_shape="o", alpha=0.5,width=0.5)
Networkx输出的图是这样的:
Networkx可视化的能力相较于Gephi还是逊色了一点,下面用Gephi做可视化和一些指标分析。Networkx可以直接导出Gephi文件的格式。
nx.write_gexf(G,'1009-Networkx.gexf')
2. Gephi可视化
首先是Gephi的安装,链接https://gephi.org/,下载后安装即可,如果能够正常打开 Gephi,跳过下面提示。 提示:如果安装完后出现“cannot find java 1.6 or higer”,解决方法如下,点击链接http://www.itmop.com/soft/downinfo/7809.html,下载安装,安装jdk之后便可正常打开 Gephi。
-
导入数据
:本次推送选择的是导入边表格,为了避免编码错误,参考https://blog.csdn.net/SunCherryDream/article/details/60973092进行csv设置,尝试将csv格式文件利用记事本另存的方式,将编码改为ANSI格式。Gephi输入表格时,将编码改为GB2312,结果,可以正常显示
算法流程:
1、初始时将每个顶点当作一个社区,社区个数与顶点个数相同。
2、依次将每个顶点与之相邻顶点合并在一起,计算它们的模块度增益是否大于0,如果大于0,就将该结点放入该相邻结点所在社区。
3、迭代第二步,直至算法稳定,即所有顶点所属社区不再变化。
4、将各个社区所有节点压缩成为一个结点,社区内点的权重转化为新结点环的权重,社区间权重转化为新结点边的权重。
5、重复步骤1-3,直至算法稳定。
Networkx实现:安装“python-louvain”
(
pip install python-louvain
)
from community import community_louvain
G2 = nx.from_pandas_edgelist(SOD, 'ID', 'ID2', 'D')
partition =community_louvain.best_partition(G2)
size = float(len(set(partition.values())))
pos = nx.spring_layout(G)
count = 0.
for com in set(partition.values()) :
count = count + 1.
list_nodes = [nodes for nodes in partition.keys()
if partition[nodes] == com]
nx.draw_networkx_nodes(G, pos, list_nodes, node_size = 20,
node_color = str(count / size))
nx.draw_networkx_edges(G,pos, alpha=0.5)
plt.show()
最后得到的是下面的结果,需要针对这个结果进一步分析,可以放到Gephi中进行更清楚的可视化,然后结合OD的经纬度,分析各社区的实际含义。
参考文献:
https://xbuba.com/questions/53087066
https://blog.csdn.net/qq_35318838/article/details/79820923
https://blog.csdn.net/SunCherryDream/article/details/60973092
https://www.pianshen.com/article/7704898577/
https://www.cnblogs.com/fengfenggirl/p/louvain.html
链接:https://pan.baidu.com/s/11onBKSlm-BV_kbEwf1D8Dw
提取码:3mu2
我们是一个有
灵魂
的团队,坚持探索,致力于分享交流学习经验。
想获取更多交通建模,论文写作,开源资料等科研信息的小伙伴就请关注
微信公众号【交通科研Lab】
(所有信息均在公众号第一时间发布)
小伙伴们!之前的推送简单介绍了Networkx的功能,本次推送继续使用Networkx进行数据的分析,主题是共享单车模式分析和社区发现,思路主要来自以下两篇论文(论文见文末百度云链接~):下图是论文1中的配图,本次推送一部分的内容就是复现这个图!另一部分内容是复现论文2中的社区发现。图的复现用到的软件主要是Gephi,社区发现算法用到的是Networkx。本次推送用到的数据是上海市共享单车数据(公...
最近在搞有关社会
网络
分析的毕设,于是整理了几个常用的数据集,方便大家下载使用_(:з」∠)_~
这是查找数据集的网站,由于我只用了简单的几个,所以如果没找到童靴需要的可以点击这个网站。
空手道俱乐部数据集
之前使用爬虫获取到了微博上粉丝数大于2000的用户,大概在10W左右,并获取了他们的关注用户列表。现在,需要利用这些节点和节点间的
关系
网来进行
社区
探测(community detection),以进行进一步分析。不过在此之前,需要攫取一些小样本进行简单的可视化。
使用
networkx
(python)导出gexf格式文件这边使用
gephi
来进行分析。而使用
gephi
需要有gexf或者
gephi
格式的数
先有评论文本5000条,由两部分组成,前面是评论,后面是分数,1表示好评(后文用5分表示),0表示差评(后文用1分表示)
一直在使用联想电脑,非常相信联想,本品绝对是正品,与描述的完全一致 1
这款电脑很不错的呢运行起来很快 玩游戏也不卡 性价比还是可以的 1
就冲这价格波动及满赠活动最多一星,吗的恶心死我了 0
异响,屏幕漏光,动不动蓝屏,acer的技术支持太差了,难道没有测试的吗?这些都是很明显的问题, 0
买了一天就降价200,还说什么30天保价?京东还可信么? 0
加载停词表,对1分和
gephi
是一个社会
网络
分析可视化的软件,其大部分代码是用java实现的。而我在学习的时候,是用python构
图
,在这里,我可以推荐两种python画
图
包,
networkx
和igraph。前期的学习,我是学习
networkx
,但其缺乏较好的画
图
布局算法。后来,在队友的推荐下,我学会使用igraph画
图
,这个是我画的其中一个
图
:
至于如何做到这样的效果呢,步骤如下:1.导入数据:
一、
Gephi
简介
Gephi
是一款
网络
分析领域的数据可视化处理软件,开发者对它寄予的希望是成为“数据可视化领域的 Photoshop”,可运行在 Windows、Linux 及 Mac OS 系统上。
Gephi
主要有以下三大特性:
由内置的快速的 OpenGL 引擎提供支持,
Gephi
能够利用非常大的
网络
推送信封,可视化
网络
多大一百万个元素,所有元素都会实时运行,如布局、过滤器;
简单易于安装和使用,以可视化为中心的 UI,类似 Photoshop 的
图
形处理
这个案例的Jupyter notebook:点击这里.
对于
共享
单车
的出行,每一次出行都可以被看作是一个从起点行动到终点的出行过程。当我们把起点和终点视为节点,把它们之间的出行视为边时,就可以构建一个
网络
。通过分析这个
网络
,我们可以得到关于城市的空间结构、
共享
单车
需求的宏观出行特征等信息。
社区
发现
,也可以叫
图
分割,帮助我们揭示
网络
中节点之间的隐藏
关系
。在这个例子中,我们将介绍如何将TransBigData整合到
共享
单车
数据的
社区
发现
分析过程中。
import pandas as pd
impor.