刀塔霸业版本: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