Argo lite Argo Lite: Interactive Graph Visualization in Your Browser! (poloclub.github.io)
是一个免费的在线交互关系可视化开源网站。
开源代码在此:GitHub - poloclub/argo-graph-lite: Interactive Graph Visualization in Your Browser
这里介绍如何使用Argo Lite 来实现关系图。
Argo Lite是佐治亚理工大学的计算机专业学生项目,详细可以看下面的论文,里面有作者的介绍视频:Argo Lite | Proceedings of the 29th ACM International Conference on Information & Knowledge Management
Argo Lite的优势:
1.免费开源不解释;
2.可交互,做出来的图可以随时调节展示的结果;
3.做出来的图可以通过保存到本地,也可以通过链接分享给任何人,别人也可以进行修改;
案例:
从IMDB上使用API下载并保存电影人和他们之间的关系图,然后导入到Argo Lite中来做可视化展示。
数据来源:
IMDB提供了API,可以用来获取演员的数据和关系:
第一步:以某一个演员A开始,获取他的参演电影,再遍历参演电影中的合作者,保存到node和edges中
#1. 以一个演员A开始,通过API获取他所有的参演电影(vote_avg_threshold = 8.0 只保留评分超过8.0的电影)
url = "https://api.themoviedb.org/3/person/" + person_id + "/movie_credits?api_key=" +self.api_key + "&language=en-US"
url_get = requests.get(url).text
data = json.loads(url_get)
cast = data['cast']
movie_for_person = []
for cast_ind in cast:
if cast_ind['vote_average'] >= vote_avg_threshold:
movie_for_person.append(cast_ind)
#2. 获取每个参演的电影的前3名合作者(排除掉A),增加到node 和 edge表中
for movie_credit in start_movie_credit:
#get the movie cast members having an 'order' value between 0-2 (these are the co-actors)
cast_members = tmdb_api_utils.get_movie_cast(movie_credit['id'], 3, [])
#print(cast_members)
node_list = []
# FOR each movie cast member:
for cast in cast_members:
graph.add_node(str(cast['id']), cast['name'])
graph.add_edge('2975', str(cast['id']))
第二步:对新增加的电影人列表,执行同样的操作:查找每个人B的参演电影,根据参演电影增加合作电影人,如果新的电影人C在现在的node表中不存在,则增加新的node,并且增加新的B-C关系edge.
最后得到的node 和edge 表如下图:
nodes.csv:
id,name 2975,Laurence Fishburne 6384,Keanu Reeves 530,Carrie-Anne Moss 1667883,Milo Gibson 1232548,Abigail Hawk 1107983,Martin Luther King Jr. 52057,Obba Babatundé 110380,Colin Powell...
edges.csv:
source,target 2975,6384 2975,530 2975,1667883 2975,1232548 2975,1107983 2975,52057...
然后将上面的文件导入到Argo Lite中:
在dataset中,可以看到所有的node,并且可以通过排序或者手动的方式,调节想要展示的节点:
对节点的大小,图像,标题都可以手动调整:
最方便的是,做好图之后,可以选择保存,或者公开发布你的snap shot:
如下
现在就可以把你做的graph分享出去了:
Argo Lite: Interactive Graph Visualization in Your Browser!
操作非常简单,功能也明了,建议大家尝试一下。