从数据上看:谁才是漫威的绝对C位

Crossin先生

复联4上映了!这次比美国还早了两天。当然,我还没看,不会给你们剧透,当然也不想不剧透。

这一部不仅是灭霸这一线剧情的结局,也被认为漫威第三阶段的收官之作。据说此部之后,不少影迷熟知的角色(演员)就要离开漫威世界的荧幕了。因此刚上映就备受关注,今天一天国内票房就已超5亿。

上次的文章《这可能是我用过最“强大”的API:Marvel API》中,我给大家演示了 漫威开放接口(Marvel API) 的功能,并且在最后留了个“彩蛋”:争取跟《复联4》同步上线一个案例。

很遗憾,最近几天忙着更新网站,眼看要鸽了。但庆幸的是,我们另一位实训生 @清风小筑 站出来把坑给填了:

对 Marvel API 中的数据进行统计分析,将角色之间关系进行可视化展示。 换句话说: 用数据说话,谁才是漫威宇宙中着墨最多的人物

我之前做了个小调查:

仅就我这边的采样来看,钢铁侠在国内是无法撼动的人气王。当然,这可能因为国内更多是漫威系列电影观众。

那么官方的喜好又是如何?

上文中我们说过,在 Marvel API 的开放数据中,包含了:

  • 1491 个角色
  • 43759 本漫画
  • 6200 个创作者
  • 10713 个系列
  • 96740 个故事
  • 75 个事件

我们这次案例选取的是 角色(character)故事(story) 之间的关系:

  1. 选取 故事最多的 N 个角色
  2. 根据 共同出现的故事数 ,衡量 角色之间的关联性

经过统计发现,故事数前3的是:

  1. 蜘蛛侠(Spider-Man)- 5192
  2. X战警(X-Men)- 4551
  3. 钢铁侠(Iron Man)- 3483

关联性最高的前3位:

  1. X战警 - 金刚狼 - 1001
  2. 神奇四侠 - 霹雳火 - 817
  3. 神奇四侠- 隐形女侠 - 773

故事数最多的25个英雄/团体的关系图:

故事数最多的99个英雄/团体的关系图:

Data provided by Marvel. 2014 Marvel
数据由 Marvel 提供
来源:http://marvel.com
  1. 意料之外但情理之中, 蜘蛛侠是出现故事最多的角色 。这还只是主线角色,没算上各个平行宇宙和衍生角色。事实上,小蜘蛛在漫威迷中一直有着超高的人气,或许是因为他的故事更接近于现实中的每一个平凡人,也或许是他那份“ 能力越大,责任越大 (With great power comes great responsibility)”的坚持。而在国内观众熟知的漫威系列电影中,蜘蛛侠似乎戏份不多,这是由于蜘蛛侠的电影版权很早就卖给了索尼(X战警和神奇四侠也是类似)。
  2. 钢铁侠、美队、金刚狼 是紧随其后的角色, X战警 是故事最多的团体。
  3. 关系图上的颜色不是我们手动标注的,而是 Gephi 通过 聚类 自动划分的。文字标签的大小则体现故事数的多少。 X战警、神奇四侠、复仇者联盟 ,这三个团体垄断了漫威绝大部分的故事。神奇四侠虽然人物和故事不算多,但相关关联很紧密(大多同时出场),相反典型是 雷神(Thor) ,虽然故事很多,但大多独来独往。

最后来说说这个关系图的实现过程。主要是两大块:

  1. 从 Marvel API 获取数据 。首先是获取所有角色,然后获取角色相关的故事,再根据这些故事信息将角色进行关联统计,最终得到 节点(角色、故事数)和边(关联故事数) 的数据。
  2. 通过 可视化分析工具 Gephi 将节点和边的数据进行 可视化 展示,生成关系图表。Gephi 的功能很强大,可以调节不同的展示效果,各位可以自行体会下。

其他需要注意的:

  1. 我们没有直接通过网络请求 Marvel API,而是使用了上次文章中提到的 marvel 模块来实现。(使用示例见前文
  2. 中间的临时数据,因为是 JSON 格式,于是我们用 mongodb 进行了存储,便于后续整理分析。如果你自己运行,也可以通过其他方式(比如文件)进行存储。
  3. 经过处理后的节点、边数据我们保存成了 csv 文件,你可以在项目中获取,直接放进 Gephi 使用。仅供学习,请勿商用。
  4. Marvel API 需要 申请秘钥 、有请求 速率限制 ,使用时需 标注数据出处和来源网址

相关网址:

Marvel API https://developer.marvel.com/docs

marvel库 https://pypi.org/project/marvel/

Gephi操作手册 https://gephi.org/users/quick-start/

阅读 1.6k

Crossin的编程教室
本专栏旨在为编程初学者提供浅显易懂的入门指导。 另有同名公众号,及面向零基础学习者的 Python 入门教...
939 声望
192 粉丝
0 条评论
939 声望
192 粉丝
文章目录
宣传栏