【Python實(shí)戰(zhàn)】學(xué)術(shù)大牛是怎么煉成的—關(guān)系網(wǎng)絡(luò)圖

之前收到了一個研究nostalgia的學(xué)術(shù)大牛的主頁,粗略數(shù)了數(shù),大概1年發(fā)了30來篇的文章。這讓我就很好奇,這種學(xué)術(shù)大牛是怎么養(yǎng)成的。

主頁:southampton.ac.uk/psychology/about/staff/cs2.page#publications

主頁.png

因此,根據(jù)這頁的文本內(nèi)容,想獲得這個學(xué)術(shù)大牛的發(fā)表情況,以及和其他學(xué)者之間的合作情況。當(dāng)然,主要就是想學(xué)習(xí)一下關(guān)系網(wǎng)絡(luò)圖的繪制。

根據(jù)哪個工作順手用哪個的原則,整個工作使用了Stata,Python和Excel。

1. 過程

主要過程包括:

  1. 準(zhǔn)備數(shù)據(jù)源:將主頁發(fā)表情況復(fù)制到txt;
  2. 提取字段:使用Python利用正則表達(dá)式,提取作者,年份,標(biāo)題,發(fā)表期刊等數(shù)據(jù);
  3. 數(shù)據(jù)清洗:再用Stata和Excel清洗數(shù)據(jù);
  4. 數(shù)據(jù)整理:使用Python和Stata整理數(shù)據(jù),主要是作者之間的合作情況及次數(shù);
  5. 分析結(jié)果:使用Python和Stata得出結(jié)果導(dǎo)出Excel,并用Python制作關(guān)系網(wǎng)絡(luò)圖。

整個過程中比較花費(fèi)時間的就是數(shù)據(jù)清洗過程,主要是作者名字清洗,很多同一個人但是不同縮寫情況,有的名字還寫錯了。。。orz

再來就是,根據(jù)每篇文獻(xiàn)的作者們整理出大牛和其他學(xué)者的合作情況,以及這些發(fā)表物中所有作者之間的合作關(guān)系數(shù)據(jù)。

清洗過程略微繁雜瑣碎,就不細(xì)講了,直接把結(jié)果展示下吧。

2. 結(jié)果

a. 所有發(fā)表

單就發(fā)表期刊文章(Journal)來說,最多一年發(fā)表了33篇(含一作和非一作)。而且,至今還有32篇已經(jīng)接受或待發(fā)表,這在社科領(lǐng)域真是不少了。。。

所有發(fā)表.png

而在所有發(fā)表的期刊文章中,JPSP(社會心理學(xué)領(lǐng)域頂刊)發(fā)表數(shù)量最多。


期刊文章.png

b. 一作發(fā)表

單拎出大牛作為第一作者的發(fā)表情況來看,每年也算是高產(chǎn)啊。。。

一作發(fā)表.png

就發(fā)表期刊來看,作為一作,發(fā)表最多的依然是JPSP。。。

一作期刊.png

c. 非一作發(fā)表

再來看看非一作發(fā)表情況,2018年光是和其他學(xué)者合作就發(fā)表了30篇文章。。。大牛都不是單打獨(dú)斗的。

非一作發(fā)表.png

意料之中的,非一作發(fā)表最多的依然是JPSP~

非一作期刊.png

d. 合作者情況

首先,整理出了和每個作者合作次數(shù)情況,這里列出合作次數(shù)大于等于10次的吧,基本是都是nostalgia領(lǐng)域的大牛了。

合作者.png

e. 關(guān)系網(wǎng)絡(luò)圖

最后,為了做出關(guān)系網(wǎng)絡(luò)圖,整理出兩兩作者之間的合作次數(shù),部分?jǐn)?shù)據(jù)結(jié)果如下圖所示。

關(guān)系網(wǎng)絡(luò).png

然后,使用python的networkx包制作關(guān)系網(wǎng)絡(luò)圖(沒有方向,但有權(quán)重),代碼如下:

其中,author1,author2和cooperation_num分別是a,b,weight

import matplotlib.pyplot as plt
import networkx as nx
import os
import pandas as pd

path = os.getcwd()
link = 'Authors_linkdata.xlsx'
link_df = pd.read_excel(path+'/'+link)
link_df.columns = ['a','b', 'weight']

G = nx.Graph()

for i in range(len(link_df)):
    G.add_edge(link_df['a'][i],link_df['b'][i],weight = link_df['weight'][i]
        )

pos = nx.spring_layout(G)

nx.draw_networkx_nodes(G, pos, node_size=30)
nx.draw_networkx_labels(G, pos, font_size=7)
nx.draw_networkx_edges(G, pos, width=1, edge_color='r',alpha = 0.5)

plt.axis('off')
plt.show()

得出來的圖就是醬紫的啦~以這位學(xué)術(shù)大牛為中心,可以說,距離越近,和這位大牛的合作次數(shù)越多。

而且,除了圍繞這個學(xué)術(shù)大牛有個關(guān)系網(wǎng)外,左下角和右上角分別也有兩個學(xué)術(shù)“小團(tuán)體”喲。

Authors_Network.png

本來還用pyecharts的graph做了關(guān)系網(wǎng)絡(luò)圖,但是,那個太難看了,而且在不斷地運(yùn)動,就不呈現(xiàn)了,感興趣的可以自行百度學(xué)習(xí)啦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容