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

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

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

前言

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

安裝igraph

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

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

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

為了避免出錯,打開cmd以后,要cd進入你存放的該whl文件的解壓后的目錄下在用pip進行安裝。

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

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

#coding=utf-8
from igraph import *

count_fans=0   #粉絲數(shù)
count_following=0  #關(guān)注人數(shù) 
fans_name=[]   #粉絲昵稱
following=[]   #關(guān)注人昵稱
#打開爬取下的昵稱文件
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)用戶'
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é)果如圖:

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

總結(jié)

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

相關(guān)文章

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

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

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

    python np.arange 步長0.1的問題需要特別注意

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

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

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

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

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

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

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

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

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

    PyTorch與PyTorch?Geometric的安裝過程

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

    PyCharm連接遠程服務(wù)器的超級詳細教程

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

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

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

    Python中的序列化詳細解析

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

最新評論

泸州市| 台前县| 屏东县| 贡山| 南阳市| 平凉市| 龙井市| 抚松县| 合山市| 林西县| 清涧县| 沐川县| 彝良县| 邢台县| 扶绥县| 禹城市| 固镇县| 卓资县| 濮阳县| 霍林郭勒市| 禹州市| 云南省| 恩平市| 天峨县| 贡觉县| 襄垣县| 额敏县| 阳朔县| 夏邑县| 西林县| 黄陵县| 胶州市| 牟定县| 临沧市| 江陵县| 元朗区| 孟津县| 丹巴县| 钟祥市| 云浮市| 宁安市|