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

利用Python-iGraph如何繪制貼吧/微博的好友關(guān)系圖詳解

 更新時(shí)間:2017年11月02日 09:50:03   作者:lovealways  
這篇文章主要給大家介紹了關(guān)于利用Python-iGraph如何繪制貼吧/微博好友關(guān)系圖的相關(guān)資料,文中顯示介紹了在windows系統(tǒng)下安裝python-igraph的步驟,然后通過(guò)示例代碼演示了繪制好友關(guān)系圖的方法,需要的朋友可以參考下。

前言

最近工作中遇到了一些需求,想通過(guò)圖形化的方式顯示社交網(wǎng)絡(luò)特定用戶(hù)的好友關(guān)系,上網(wǎng)找了一下這方面的圖形庫(kù)有networkx、graphviz等,找了好久我選擇了iGraph這個(gè)圖形庫(kù)。下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

安裝igraph

igraph在Windows下的安裝稍微有點(diǎn)麻煩,之前嘗試在windows用pip和conda直接裝igraph都裝不上,后來(lái)發(fā)現(xiàn)了lfd的網(wǎng)站 Unofficial Windows Binaries for Python Extension Packages , 里面有很多python的資源和庫(kù)與工具。

在上面的網(wǎng)址中找到python_igraph去下載具體的python對(duì)應(yīng)版本和是32位還是64位的,比如我下載了 python_igraph‑0.7.1.post6‑cp35‑none‑win_amd64.whl

利用pip 安裝whl文件:pip install 文件名.whl

為了避免出錯(cuò),打開(kāi)cmd以后,要cd進(jìn)入你存放的該whl文件的解壓后的目錄下在用pip進(jìn)行安裝。

繪制好友關(guān)系圖

fans.txt 和 follow.txt分別保存了爬取下來(lái)的粉絲昵稱(chēng)以及關(guān)注人昵稱(chēng)。

#coding=utf-8
from igraph import *

count_fans=0   #粉絲數(shù)
count_following=0  #關(guān)注人數(shù) 
fans_name=[]   #粉絲昵稱(chēng)
following=[]   #關(guān)注人昵稱(chēng)
#打開(kāi)爬取下的昵稱(chēng)文件
with open('fans.txt','r') as f:  
 lines=f.readlines()
 for line in lines:
  if (line!=None)&(line!='\n'):
   fans_name.append(line)
   # print fans_name
   count_fans+=1
with open('follow.txt','r') as c:
 lines=c.readlines()
 for line in lines:
  if (line!=None)&(line!='\n'):
   following.append(line)
   count_following+=1

g = Graph()   #創(chuàng)建
g.add_vertices(3+count_fans+count_following)
g.add_edges([(0,1),(1,2)])

g.vs[0]["name"]='Ta的粉絲'
g.vs[1]["name"]='目標(biāo)用戶(hù)'
g.vs[2]["name"]='Ta的關(guān)注'
g.es["trunk"] = [True, True]
g.vs["main_node"]=[1.5,3,1.5]

for i in range(3,count_fans+3):
 g.add_edges((0,i))
 g.es[i-1]["trunk"]=False
for j in range(count_fans+3,3+count_fans+count_following):
 g.add_edges((2,j))
 g.es[j-1]["trunk"]=False

index=3
for fans in fans_name:
 g.vs[index]["name"]=fans
 g.vs[index]["main_node"]=False
 index+=1
for name in following:
 g.vs[index]["name"]=name
 g.vs[index]["main_node"]=False
 index+=1

visual_style = {}
color_dic={1.5:"#cfe6ff",3:"#7299a7",False:"#cfe6ff"}
visual_style["vertex_label_size"]=11
visual_style["vertex_label_dist"]=1
visual_style["vertex_shape"]="circle"
visual_style["vertex_size"] = [7+ 10*int(main_node) for main_node in g.vs["main_node"]]
visual_style["edge_width"] = [1 + 2 * int(trunk) for trunk in g.es["trunk"]]
visual_style["vertex_color"] =[color_dic[main_node] for main_node in g.vs["main_node"]]
visual_style["vertex_label"] = g.vs["name"]
visual_style["bbox"] = (1000, 1000)
visual_style["margin"] = 150
layout = g.layout("grid_fr")
visual_style["layout"] = layout
plot(g, **visual_style)

最終結(jié)果如圖:

以上只演示了一個(gè)用戶(hù)的社交關(guān)系圖,有精力的話可以嘗試遞歸地一層一層爬下去,想象一下最終繪出來(lái)的圖也是挺炫酷的。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 關(guān)于TensorFlow、Keras、Python版本匹配一覽表

    關(guān)于TensorFlow、Keras、Python版本匹配一覽表

    這篇文章主要介紹了關(guān)于TensorFlow、Keras、Python版本匹配一覽表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • python np.arange 步長(zhǎng)0.1的問(wèn)題需要特別注意

    python np.arange 步長(zhǎng)0.1的問(wèn)題需要特別注意

    這篇文章主要介紹了python np.arange 步長(zhǎng)0.1的問(wèn)題需要特別注意,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python中Genarator函數(shù)用法分析

    python中Genarator函數(shù)用法分析

    這篇文章主要介紹了python中Genarator函數(shù)用法,實(shí)例分析了Genarator函數(shù)的使用原理與相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Python中os.path模塊的8個(gè)神奇函數(shù)分享

    Python中os.path模塊的8個(gè)神奇函數(shù)分享

    在Python編程中,os.path模塊是一個(gè)非常重要的模塊,它提供了用于處理文件路徑和目錄的函數(shù),本文將介紹os.path模塊中最常用的8個(gè)內(nèi)置函數(shù),需要的可以參考下
    2023-11-11
  • 淺談Python數(shù)學(xué)建模之線性規(guī)劃

    淺談Python數(shù)學(xué)建模之線性規(guī)劃

    線性規(guī)劃是運(yùn)籌學(xué)中研究較早、發(fā)展較快、應(yīng)用廣泛、方法較成熟的一個(gè)重要分支,它是輔助人們進(jìn)行科學(xué)管理的一種數(shù)學(xué)方法。研究線性約束條件下線性目標(biāo)函數(shù)的極值問(wèn)題的數(shù)學(xué)理論和方法
    2021-06-06
  • pytorch中nn.Flatten()函數(shù)詳解及示例

    pytorch中nn.Flatten()函數(shù)詳解及示例

    nn.Flatten是一個(gè)類(lèi),而torch.flatten()則是一個(gè)函數(shù),下面這篇文章主要給大家介紹了關(guān)于pytorch中nn.Flatten()函數(shù)詳解及示例的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • PyTorch與PyTorch?Geometric的安裝過(guò)程

    PyTorch與PyTorch?Geometric的安裝過(guò)程

    這篇文章主要介紹了PyTorch與PyTorch?Geometric的安裝,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程

    PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程

    Pycharm可以與服務(wù)器建立連接,把相應(yīng)的項(xiàng)目同步到服務(wù)器上,下面這篇文章主要給大家介紹了關(guān)于PyCharm連接遠(yuǎn)程服務(wù)器的超級(jí)詳細(xì)教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 如何實(shí)現(xiàn)一個(gè)python函數(shù)裝飾器(Decorator)

    如何實(shí)現(xiàn)一個(gè)python函數(shù)裝飾器(Decorator)

    這篇文章主要介紹了如何實(shí)現(xiàn)一個(gè)python函數(shù)裝飾器(Decorator),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • Python中的序列化詳細(xì)解析

    Python中的序列化詳細(xì)解析

    這篇文章主要介紹了Python中的序列化詳細(xì)解析,序列化是指把程序中的一個(gè)類(lèi)轉(zhuǎn)化成一個(gè)標(biāo)準(zhǔn)化的格式,標(biāo)準(zhǔn)化的意義是這個(gè)格式可以跨程序,跨平臺(tái)的被使用,而且保持其原有的內(nèi)容,規(guī)范,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

沽源县| 轮台县| 阜新| 通辽市| 车致| 易门县| 灌云县| 出国| 微博| 汶川县| 伽师县| 济阳县| 于都县| 永胜县| 城步| 乐陵市| 隆子县| 涿州市| 云和县| 松江区| 犍为县| 龙南县| 永靖县| 尼玛县| 保德县| 辽源市| 安乡县| 兰考县| 嵩明县| 曲阜市| 潢川县| 冀州市| 衡东县| 湛江市| 论坛| 通榆县| 邳州市| 新余市| 安化县| 手机| 莱阳市|