利用Python+Gephi生成刀塔霸业棋子关系图

刀塔霸业版本:2019年7月24日

Gephi下载地址:Download

目录

代码

Gephi效果图

词云图

更新


代码

代码如下:

# -*- coding: utf-8 -*-
"""
@author:    d0t4
@date:      2019/7/29
@desc:      生成刀塔霸业中各棋子的关系图(Gephi图文件,需导入Gephi后显示)
"""# 获取一个列表中的两两无向对
def get_pairs_in_lists(data_list):if len(data_list) == 2:return data_list[0] + "," + data_list[1] + "\n"elif len(data_list) == 1:return ""pairs = ""for i in range(1, len(data_list)):pairs += data_list[0] + "," + data_list[i] + "\n"return pairs + get_pairs_in_lists(data_list[1:])# 词云图
def gen_wordcloud(text):import matplotlib.pyplot as pltimport wordcloudfrom PIL import Imageimport numpy as npback = np.array(Image.open("logo.png"))w = wordcloud.WordCloud(scale=2, font_path="C:/Windows/Fonts/simkai.ttf", mask=back, background_color="white", )w.generate(text)plt.imshow(w)plt.axis("off")plt.show()w.to_file("cloud.png")if __name__ == '__main__':races = [# 种族"斧王,主宰,兽王,干扰者",  # 悍将"巨魔战将,巫医,暗影萨满,蝙蝠骑士",  # 巨魔"修补匠,发条技师,赏金猎人,伐木机,炼金术士,工程师",  # 好斗"卓尔游侠,帕吉,亚巴顿,瘟疫法师,巫妖",  # 无情"小小,变体精灵,剃刀,天穹守望者,谜团",  # 太古"巨牙海民,魅惑魔女,剧毒术士,沙王,狼人,德鲁伊",  # 野人"敌法师,先知,帕克,树精卫士,露娜,幻影刺客,风行者,圣堂刺客,米拉娜",  # 无踪"术士,食人魔魔法师",  # 血亲"血魔,水晶室女,全能骑士,丽娜,光之守卫,昆卡,龙骑士",  # 人族"帕克,冥界亚龙,龙骑士",  # 龙"斯拉达,斯拉克,美杜莎,潮汐猎人",  # 鳞甲"混沌骑士,痛苦女王,影魔,恐怖利刃,末日使者",  # 恶魔"狙击手,矮人直升机",  # 神射手# 职业"血魔,赏金猎人,变体精灵,痛苦女王,冥界亚龙,幻影刺客,斯拉克,沙王,圣堂刺客",  # 刺客"魅惑魔女,先知,树精卫士,德鲁伊",  # 德鲁伊"敌法师,恐怖利刃",  # 恶魔猎人"修补匠,发条技师,伐木机,工程师,矮人直升机",  # 发明家"食人魔魔法师,水晶室女,帕克,剃刀,丽娜,光之守卫,巫妖",  # 法师"卓尔游侠,兽王,狙击手,风行者,狼人,米拉娜,美杜莎",  # 猎人"蝙蝠骑士,混沌骑士,露娜,亚巴顿,全能骑士,龙骑士",  # 骑士"暗影萨满,天穹守望者,干扰者",  # 萨满"术士,巫医,剧毒术士,影魔,炼金术士,瘟疫法师,谜团",  # 术士"小小,巨牙海民,斧王,主宰,帕吉,斯拉达,潮汐猎人,巨魔战将,昆卡,末日使者",  # 勇士]graph_data = ""for race in races:chess_list = race.split(",")graph_data += get_pairs_in_lists(chess_list)# 将关系图写入文件,将该文件导入Gephi后可显示棋子关系图print(graph_data)with open("underlords_chess.csv", "w", encoding='utf-8') as f:f.write(graph_data)# 生成词云图gen_wordcloud(graph_data)

Gephi效果图

将以上代码生成的underlords_chess.csv导入Gephi,可得效果图:

棋子根据Betweenness Centrality着色。可见四好斗、三法等只需少量棋子(两个或三个)即可激活两种羁绊。

词云图

词云图如下,使用刀塔霸业的logo作为mask:

参考:利用Python+Gephi构建金庸人物知识图谱_南极向北的博客-CSDN博客

更新

2023-5-15更新:在Win10中运行时报错“ValueError: Only supported for TrueType fonts”,解决方法为更新pillow至最新版本,当天为9.5.0版本。

pip install pillow --upgrade

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380857.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

用狼的处世哲学做SOHO 一

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! --创业者要有象狼一…

P450进阶款无人机室内定位功能研测

在以往的Prometheus 450(P450)无人机上,我们搭载的是Intel Realsense T265定位模块,使用USB连接方式挂载到机载计算机allspark上,通过机载上SDK驱动T265运行并输出SLAM信息,以此来实现室内定位功能。 为进…

autocad全国计算机考试试题,2015年职称计算机考试试题:AutoCAD模拟题及答案

1. 画完一幅图后,在保存该图形文件时用_______作为扩展名。 A.cfg B.dwt C.bmp D.dwg 2. 要始终保持物体的颜色与图层的颜色一致,物体的颜色应设置为_______。 A.BYLAYER B.BYBLOCK C.COLOR D.RED 3. 在屏幕上用平移“PAN”命令将某图形沿X方向及Y方向各…

LibreCAD windows 编译

一、安装 VS2019,QT,QT VS 插件 二、boost下载 下载boost_1_71_0-msvc-14.2-64.exe文件(含源码和编译好的库) Boost C Libraries - Browse /boost-binaries/1.71.0 at SourceForge.netFree peer-reviewed portable C source librarieshttps://sourcef…

VBA for AutoCAD

Download the Microsoft Visual Basic for Applications Module (VBA) 2016 Downloads AutoCAD 2016 VBA module 32-bit (exe - 70206Kb)

cad.net开发

最近要做一个cad文件的7参数坐标转换的程序,想基于cad进行二次开发,初次学习。 为了方便快捷开发,基于cad.net进行二次开发,网上查了很多资料,有基于acad等各种,总是遇到这样那样的问题,经过自…

2022年03月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536 输入 只有一行,一个双精度浮点数。 输出 一行,保留8位小数的浮点数。 样例输…

Michael.W基于Foundry精读Openzeppelin第24期——ERC165Storage.sol

0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 0.1 ERC165Storage.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/utils/introspection/ERC165Storage.sol ERC165Storage合约是ERC165…

【Java学习】System.Console使用

背景 在自学《Java核心技术卷1》的过程中看到了对System.Console的介绍,编写下列测试代码, public class ConsoleTest {public static void main(String[] args) {Console cs System.console();String name cs.readLine("AccountInfo: ");…

React UI组件库

1 流行的开源React UI组件库 1 material-ui(国外) 官网: Material UI: React components based on Material Design github: GitHub - mui/material-ui: MUI Core: Ready-to-use foundational React components, free forever. It includes Material UI, which implements Go…

【网约车】 网约车管理解决方案

背景 自2014年7月以来,一些互联网企业陆续推出网络预约出租汽车服务,对于满足社会公众多样化、差异性出行需求发挥了积极作用。面对新一代信息技术的发展与相关行业的快速渗透,行业监管部门要顺应新技术和新应用的发展趋势,从促进…

Python实现微信小程序自动约车

目录 一、Fiddler抓取小程序包 二、分析抓到的包 一、获取全部车辆列表 二、获取班车停靠点 三、Python实现预约车辆 一、获取明天的日期 二、获取班车id 三、获取车辆停靠点 四、Server酱实现消息提示 四、利用宝塔面板,进行定时执行脚本,实现自动约…

微信小程序汽车租赁平台+后台管理系统

《微信小程序汽车租赁平台后台管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序做的汽车租赁前台和Java做的后台管理系统: 微信小程序——汽车租赁前台涉及技术:WXML 和 WXSS、JavaScript Ja…

有没有软件支持批量查询官方界面的快递号码

如果你想做好电子商务或物流行业,你一定不能虎头蛇尾。前端效率不够,必须做好后端的及时跟踪和维护。当大量快递以集中方式发出时,必须及时跟踪物流信息,掌握快递的动态。今天,小编将安利一个实用的辅助查询软件&#…

搭上锂电池公司Livent高速增长的顺风车

来源:猛兽财经 作者:猛兽财经 作为世界上为数不多的拥有完整产业链的锂生产商之一,Livent (LTHM)处于可以充分利用锂需求繁荣的位置。该公司正在做出明智的资本分配决策,继续扩大其上游和中游产能&#xf…

微信小程序使用物流查询插件

微信小程序使用物流查询插件 文章目录 微信小程序使用物流查询插件添加插件添加成功使用方式声明使用插件引入插件包 效果图 物流查询插件 添加插件 登录微信公众平台后台—>设置—>第三方设置—>添加插件搜索:物流服务 添加成功 使用方式 根据插件的开发…

顺丰快递单号查询接口物流路由跟踪信息快递鸟api对接教程

目录 1.完成前期准备工作2.API接口3.请求参数(Headers)4.请求参数(Body)5.返回参数(Return)6.请求完整报文(示例)7.成功返回报文(示例)8.失败返回报文&#x…

同时追踪顺心捷达多个单号物流,并分析派件时效

如何在电脑批量查询顺心捷达单号的信息?并分析派件时效,像派件前、派件后时效,可以分析吗?小编的回答当然是可以的,下面一起用快递批量查询高手来操作。 查询顺心捷达物流 进入快递批量查询高手,在“添加单…

快递查询软件,设置自动跟踪提醒,一键查询物流信息

快递是很多电商行业中相对来说必不可少的一环,因为随着大家的网购,发货量大了起来,快递也就多了,很多人每天可能就需要查询许许多多的快递物流。下面小编给大家分享一个新的技巧,下面一起来试试,希望能给大…

微信小程序 java物流车辆货物托运配送管理系统springboot

框架和微信小程序来完成对系统的设计。整个开发过程首先对货物管理系统小程序进行需求分析,得出货物管理系统小程序主要功能。接着对货物管理系统小程序进行总体设计和详细设计。 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工…