VOSviewer简介
VOSviewer 是一款用于构建和可视化科学文献计量网络的软件工具。它能够帮助用户分析和可视化期刊、研究人员或单个出版物之间的关系,这些关系可以基于引用、共引、共著或术语共现关系来构建。VOSviewer 还提供了文本挖掘功能,可以用来构建和可视化从科学文献中提取的重要术语的共现网络
VOSviewer 的核心功能之一是“共现聚类”,即两个事物同时出现代表它们之间是相关的。这种分析单元和聚类可视化效果,使得 VOSviewer 支持多种数据格式的导入和分析,例如文献数据库、通用网络数据及文本数据。软件提供多种视图解读,包括网络可视化(聚类视图)、覆盖可视化(标签视图)和密度可视化(密度视图),每种视图都以不同的方式展示和分析数据。
VOSviewer的下载安装需要先安装java环境,然后去官网下载安装VOSviewer软件包,具体的安装这里不赘述,可参考其它资料。
VOSviewer分析知网文献——关键词聚类
本次以知网数据库为例,检索主题为“干旱区水文”,并对关键词进行聚类可视化。
首先在知网中输入检索主题“干旱区水文”,全选所有的文献,然后以Refworks的方式导出。
打开VOSviewer,首先选择Create,然后选择基于参考文献数据创建图谱,再点击next下一步。
选择从引用管理器文件中读入数据(因为之前导出了知网的Ref文件),在点击next下一步。
首先点击RefWorks选项卡,接着点击三个点的按钮找到本地保存的文件,最后点击next下一步。
选择Co-occurrence选项,这样就可以分析关键词了,然后点击next。
设置关键词重复出现的最小次数,这里设置的是5。VOSviewer显示一共有860个关键词,然后有25个关键词最少重复出现5次。这个值设置的越大,满足条件的关键词就越少。
这里默认,直接next下一步。
可以看到软件列出的关键词及重复出现的次数。点击Finish。
这样关键词聚类的可视化图就出来了。
Python生成关键词词云
python生成词云使用wordcloud库。根据关键词出现的频次显示出不同的大小。
# 导入必要的库
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 示例数据:词语及其出现次数
word_freq = {
"干旱区": 69,
"半干旱区": 21,
"地下水": 19,
"地下水位": 18,
"水资源": 12,
"气候变化": 12,
"干旱半干旱区": 11,
"土壤水分": 10,
"水文过程": 10,
"西北干旱区": 10,
"绿洲": 9,
"水文模型": 9,
"生态环境": 9,
"水文地质": 8,
"生态水文": 7,
"分布式水文模型": 7,
"生态水文过程": 7,
"遥感": 6,
"塔里木河": 5,
"数值模拟": 5,
"气象干旱": 5,
"地理信息系统": 5,
"植被": 5,
"水文干旱": 5,
"平原水库": 5
}
# 创建词云对象
wordcloud = WordCloud(
width=800,
height=400,
background_color='white',
font_path='/Users/br/Desktop/files/fonts/simhei.ttf' # 如果有中文,需要指定中文字体路径
).generate_from_frequencies(word_freq)
# 显示词云
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
现在我想将词云展示为圆形,稍微修改下代码:
# 导入必要的库
import numpy as np
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 创建一个圆形掩模
x, y = np.ogrid[:800, :800]
mask = (x - 400) ** 2 + (y - 400) ** 2 > 360 ** 2
mask = 255 * mask.astype(int)
# 示例数据:词语及其出现次数
word_freq = {
"干旱区": 69,
"半干旱区": 21,
"地下水": 19,
"地下水位": 18,
"水资源": 12,
"气候变化": 12,
"干旱半干旱区": 11,
"土壤水分": 10,
"水文过程": 10,
"西北干旱区": 10,
"绿洲": 9,
"水文模型": 9,
"生态环境": 9,
"水文地质": 8,
"生态水文": 7,
"分布式水文模型": 7,
"生态水文过程": 7,
"遥感": 6,
"塔里木河": 5,
"数值模拟": 5,
"气象干旱": 5,
"地理信息系统": 5,
"植被": 5,
"水文干旱": 5,
"平原水库": 5
}
# 创建词云对象
wordcloud = WordCloud(
mask=mask,
contour_color='white',
contour_width=3,
background_color='white',
font_path='/Users/br/Desktop/files/fonts/simhei.ttf' # 如果有中文,需要指定中文字体路径
).generate_from_frequencies(word_freq)
# 显示词云
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()