独家 | 使用Gephi设置动态图形动画——在社会网络图中动画化时间动态行为的数据可视化教程

作者:Haaya Naushan
Gephi可视化Twitter网红的转发行为随时间的变化。

在这个简短的数据可视化教程中,我将概述创建网络数据动画所需的步骤和最简代码。我将以Twitter为例,但同样的过程也可以用于其他社交媒体网络。由于本教程的重点是数据可视化,因此我将跳过对数据收集过程的解释。尽管如此,我在“Twitter脚本抓取初学者知识要点分享”中介绍了如何收集本教程所需的数据。https://gist.github.com/haayanau/63d03cad7db813a3f77577038c3f0d5f
1. import pandas as pd2.3. data_dir = 'C:/your_data_dir/'4.5. # load nodes csv to pandas dataframe6. df_nodes = pd.read_csv(data_dir + 'nodes.csv', low_memory=False)7. print(f"The nodes dataframe has shape {df_nodes.shape}")8.9. # load edges csv to pandas dataframe10. df_edges = pd.read_csv(data_dir + 'edges.csv', low_memory=False)11. print(f"The edges dataframe has shape {df_edges.shape}")
载入节点和边的csv文件的Python代码段。
1. # select necessary columns for list of nodes with attributes2. df_nodes = df_nodes.loc[:, ['user_id', 'user_screen_name', 'cluster', 'user_followers_count']].drop_duplicates('user_id')3. print(f"This nodes dataframe has shape {df_nodes.shape}")4.5. # Label "Id" and "Label" columns6. df_nodes['Id'] = df_nodes['user_id']7. df_nodes['Label'] = df_nodes['user_screen_name']8. # Arrange dataframe so first column is "Id" and second is "Label". All other columns are node attributes.9. df_nodes = df_nodes.loc[:, ['Id', 'Label', 'cluster', 'user_followers_count']]10. print(f"the first five rows of the nodes dataframe look like this {df_nodes.head(5)}")11.12. # Save labeled and formatted nodes dataframe as a csv for Gephi13. df_nodes.to_csv(data_dir + 'nodes.csv', index=False, encoding='utf-8')
1. # Label columns as "Source" and "Target"2. df_edges['Source'] = df_edges['retweeter']3. df_edges['Target'] = df_edges['retweetee']4.5. # Add columns for type, weight and label6. df_edges['Type'] = 'directed'7. df_edges['Weight'] = 18. df_edges['Label'] = [i for i in range(1, df_edges.shape[0]+1)]9.10. # Label the retweet time column "Timeset" and format time in isoformat11. df_edges['retweet_created_at'] = pd.to_datetime(df_edges['retweet_created_at'], utc=True)12. df_edges[r'Timeset'] = df_edges['retweet_created_at'].apply(lambda x: x.isoformat())13. print(f"the time is in this format {df_edges[r'Timeset'].head(3)}")14.15. # Arrange edges dataframe and verify that the format is correct.16. df_edges = df_edges.loc[:, ['Source', 'Target', 'Type', 'Label', r'Timeset', 'Weight']]17. print(f"this dataframe has shape {df_edges.shape}")18. print(f"the first five rows look like this {df_edges.head(5)}")19.20. # Save edges dataframe as csv for import into Gephi.21. df_edges.to_csv(data_dir + 'edges.csv', index=False, encoding='utf-8')








原标题:
Animate Dynamic Graphs with Gephi Data visualization tutorial on animating time-dynamic behaviour in social network graphs.
原文链接:
https://towardsdatascience.com/animate-dynamic-graphs-with-gephi-d6bd9faf5aec
译者简介
车前子,北大医学部,流行病与卫生统计专业博二在读。从临床医学半路出家到数据挖掘,感到了数据分析的艰深和魅力。即使不做医生,也希望用数据为医疗健康做一点点贡献。
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织

