色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Python基于network模塊制作電影人物關(guān)系圖

瀏覽:4日期:2022-07-20 14:04:13

在我們生活的世界中,每一個(gè)人以及每一個(gè)事物相互之間都存在著關(guān)系,有直接關(guān)系,也有間接關(guān)系,最終會形成一個(gè)無形的大的關(guān)系網(wǎng)。network模塊是一個(gè)用python語言開發(fā)的圖論和復(fù)雜網(wǎng)絡(luò)建模工具,模塊內(nèi)置了常用的圖與復(fù)雜網(wǎng)絡(luò)分析算法。

network模塊有四種圖:Graph、DiGraph、MultiGraph、MultiDigraph,分別為無多重邊無向圖、無多重邊有向圖、有多重邊無向圖、有多重邊有向圖。其中Graph是用點(diǎn)和線來刻畫離散事物集合中,每對事物間以某種方式相聯(lián)系的數(shù)學(xué)模型。

下面我們來分析《復(fù)仇者聯(lián)盟4》人物關(guān)系:

import pandas as pd#導(dǎo)入繪圖模塊import networkx as nximport matplotlib.pyplot as plt# 讀取文件aa =r’F:python入門python編程錦囊Code(實(shí)例源碼及使用說明)Code(實(shí)例源碼及使用說明)Code(實(shí)例源碼及使用說明)09datafl4.xls’df = pd.DataFrame(pd.read_excel(aa))#去除重復(fù)項(xiàng),并轉(zhuǎn)換成列表df1=df[’label1’].drop_duplicates().values.tolist()df2=df[[’label1’,’label2’,’weight’]]#設(shè)置畫布大小plt.figure(figsize=(6, 5))#顏色數(shù)據(jù)colors = df[’color’].drop_duplicates().values.tolist()#G:圖表,一個(gè)networkx圖G = nx.Graph()# 添加邊f(xié)or i in df2.index: G.add_edge(df2.label1[i], df2.label2[i], weight=df2.weight[i])# 定義兩個(gè)邊,并給邊賦予權(quán)重,其中u是起點(diǎn),v是終點(diǎn),d是權(quán)重edge1 = [(u, v) for (u, v, d) in G.edges(data=True) if (d[’weight’] >=1)]edge2 = [(u, v) for (u, v, d) in G.edges(data=True) if (d[’weight’] >=15)]# 圖的布局# 節(jié)點(diǎn)在一個(gè)圓環(huán)上均勻分布pos = nx.circular_layout(G)#用Fruchterman-Reingold算法排列節(jié)點(diǎn)#pos=nx.spring_layout(G)#節(jié)點(diǎn)隨機(jī)分布#pos=nx.spring_layout(G)# 點(diǎn)#node_size指定節(jié)點(diǎn)的尺寸大小,默認(rèn)值為300#node_color指定節(jié)點(diǎn)的顏色,默認(rèn)值為紅色#node_shape節(jié)點(diǎn)的形狀,默認(rèn)值為圓形,用o表示nx.draw_networkx_nodes(G, pos, alpha=1, node_size=200,node_color=colors,node_shape=’o’)#nx.draw_networkx_nodes(G, pos, alpha=1, node_size=300,node_color=colors,node_shape=’p’)# 邊#pos:字典類型,節(jié)點(diǎn)作為鍵、位置作為值。位置是長度為2的序列#edgelist:邊緣元組的集合,只繪制指定的邊,默認(rèn)值為G.edges()#width邊的寬度,默認(rèn)值為1.0#alpha透明度,默認(rèn)值為1.0(不透明),0為完全透明#edge_color邊的顏色,默認(rèn)值為黑色#style邊的樣式,默認(rèn)值為實(shí)線。nx.draw_networkx_edges(G, pos, edgelist=edge1,width=1, alpha=0.3, edge_color=’g’, style=’dashed’)nx.draw_networkx_edges(G, pos, edgelist=edge2, width=1.5, alpha=0.5, edge_color=’red’)# 標(biāo)簽#font_size節(jié)點(diǎn)標(biāo)簽字體大小,默認(rèn)值為12nx.draw_networkx_labels(G, pos, font_size=9)# 生成結(jié)果plt.axis(’off’)plt.title(’《復(fù)仇者聯(lián)盟4》人物關(guān)系圖’)plt.rcParams[’font.size’] = 10plt.rcParams[’font.sans-serif’]=[’SimHei’] #解決中文亂碼plt.show()

結(jié)果:

Python基于network模塊制作電影人物關(guān)系圖

使用力引導(dǎo)算法Fruchterman-Reingold排列點(diǎn)畫圖,可以大大減少邊的交叉,只需要改兩行代碼即可:

#用Fruchterman-Reingold算法排列節(jié)點(diǎn)pos=nx.spring_layout(G)# 點(diǎn)nx.draw_networkx_nodes(G, pos, alpha=1, node_size=300,node_color=colors,node_shape=’p’)

結(jié)果:

Python基于network模塊制作電影人物關(guān)系圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 丝袜足液精子免费视频 | 久久影院视频 | 亚洲一级大片 | 91丨九色丨首页在线观看 | 澳门一级特黄真人毛片 | 精品 日韩 国产 欧美在线观看 | 美女视频黄a视频美女大全 美女视频黄a视频免费全程 | 欧美刺激午夜性久久久久久久 | 香港激情三级做爰小说 | 91人人视频国产香蕉 | 国产日韩视频在线观看 | 免费久久久久 | 日本精品高清一区二区不卡 | 亚洲素人在线 | 中文字幕福利片 | 男女性高清爱潮视频免费观看 | 成人免费网址在线 | 精品国产成人高清在线 | 成人毛片视频免费网站观看 | 男人天堂网址 | 欧美jizzhd精品欧美另类 | 看亚洲a级一级毛片 | 99精品热女视频专线 | 99久久一区| 三级全黄a| 国产精品日韩欧美在线第3页 | 精品欧美一区二区三区四区 | 一区二区三区四区产品乱码伦 | 99国产欧美久久精品 | 亚洲毛片在线 | 怡红院亚洲 | 香蕉久久夜色精品国产尤物 | 国产欧美日韩综合精品一区二区 | 亚洲精品第一区二区三区 | 亚洲午夜精品一级在线播放放 | 日产国产精品亚洲系列 | 男人天堂视频网 | 国产欧美综合一区二区 | 国产亚洲精品一区999 | 国产片一级| 亚洲国产精久久久久久久春色 |