最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年06月19日 08:39:58   作者:夏日的向日葵  
這篇文章主要介紹了Python基于network模塊制作電影人物關(guān)系圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

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

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

import pandas as pd
#導(dǎo)入繪圖模塊
import networkx as nx
import matplotlib.pyplot as plt
# 讀取文件
aa =r'F:\\python入門\\python編程錦囊\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\09\\data\\fl4.xls'
df = pd.DataFrame(pd.read_excel(aa))
#去除重復(fù)項,并轉(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:圖表,一個networkx圖
G = nx.Graph()
# 添加邊
for i in df2.index:
  G.add_edge(df2.label1[i], df2.label2[i], weight=df2.weight[i])
# 定義兩個邊,并給邊賦予權(quán)重,其中u是起點,v是終點,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é)點在一個圓環(huán)上均勻分布
pos = nx.circular_layout(G)
#用Fruchterman-Reingold算法排列節(jié)點
#pos=nx.spring_layout(G)
#節(jié)點隨機(jī)分布
#pos=nx.spring_layout(G)
# 點
#node_size指定節(jié)點的尺寸大小,默認(rèn)值為300
#node_color指定節(jié)點的顏色,默認(rèn)值為紅色
#node_shape節(jié)點的形狀,默認(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é)點作為鍵、位置作為值。位置是長度為2的序列
#edgelist:邊緣元組的集合,只繪制指定的邊,默認(rèn)值為G.edges()
#width邊的寬度,默認(rèn)值為1.0
#alpha透明度,默認(rèn)值為1.0(不透明),0為完全透明
#edge_color邊的顏色,默認(rèn)值為黑色
#style邊的樣式,默認(rèn)值為實線。
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é)點標(biāo)簽字體大小,默認(rèn)值為12
nx.draw_networkx_labels(G, pos, font_size=9)
# 生成結(jié)果
plt.axis('off')
plt.title('《復(fù)仇者聯(lián)盟4》人物關(guān)系圖')
plt.rcParams['font.size'] = 10
plt.rcParams['font.sans-serif']=['SimHei'] #解決中文亂碼
plt.show()

結(jié)果:

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

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

結(jié)果:

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

相關(guān)文章

  • Python3 replace()函數(shù)使用方法

    Python3 replace()函數(shù)使用方法

    這篇文章主要介紹了Python3 replace()函數(shù)使用方法,需要的朋友可以參考下
    2018-03-03
  • 使用python flask框架開發(fā)圖片上傳接口的案例詳解

    使用python flask框架開發(fā)圖片上傳接口的案例詳解

    剛領(lǐng)導(dǎo)安排任務(wù),需求是這樣的開發(fā)一個支持多格式圖片上傳的接口,并且將圖片壓縮,支持在線預(yù)覽圖片,下面小編分享下使用python flask框架開發(fā)圖片上傳接口的案例詳解,感興趣的朋友一起看看吧
    2022-04-04
  • Django中prefetch_related()函數(shù)優(yōu)化實戰(zhàn)指南

    Django中prefetch_related()函數(shù)優(yōu)化實戰(zhàn)指南

    我們可以利用Django框架中select_related和prefetch_related函數(shù)對數(shù)據(jù)庫查詢優(yōu)化,這篇文章主要給大家介紹了關(guān)于Django中prefetch_related()函數(shù)優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件

    python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python Tkinter模塊 GUI 可視化實例

    Python Tkinter模塊 GUI 可視化實例

    今天小編就為大家分享一篇Python Tkinter模塊 GUI 可視化實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python實現(xiàn)Dijkstra靜態(tài)尋路算法

    python實現(xiàn)Dijkstra靜態(tài)尋路算法

    這篇文章主要介紹了python實現(xiàn)Dijkstra靜態(tài)尋路算法,常用于路由算法或者作為其他圖算法的一個子模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • DRF?QuerySet?Instance數(shù)據(jù)庫操作功能概述

    DRF?QuerySet?Instance數(shù)據(jù)庫操作功能概述

    這篇文章主要為大家介紹了DRF?QuerySet?Instance數(shù)據(jù)庫處理的功能概述,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 詳解利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波

    詳解利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波

    這篇文章主要介紹了詳解利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 基于Python+Tkinter實現(xiàn)一個簡易計算器

    基于Python+Tkinter實現(xiàn)一個簡易計算器

    Tkinter作為Python的標(biāo)準(zhǔn)庫,是非常流行的Python GUI工具,同時也是非常容易學(xué)習(xí)的。本文將利用Tkinter繪制一個簡單的計算器,感興趣的可以試一試
    2022-01-01
  • numpy 數(shù)組拷貝地址所引起的同步替換問題

    numpy 數(shù)組拷貝地址所引起的同步替換問題

    本文主要介紹了numpy 數(shù)組拷貝地址所引起的同步替換問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論

苏尼特左旗| 阿拉善盟| 泉州市| 繁峙县| 望江县| 五峰| 望谟县| 金川县| 调兵山市| 治多县| 崇信县| 鹤岗市| 新巴尔虎左旗| 新源县| 社会| 安吉县| 桑植县| 磐安县| 塔城市| 吉首市| 攀枝花市| 绿春县| 三穗县| 林周县| 正阳县| 外汇| 蓝山县| 齐河县| 息烽县| 汪清县| 临漳县| 丰县| 阿图什市| 思茅市| 建瓯市| 连州市| 西昌市| 张掖市| 荥经县| 千阳县| 龙海市|