0%

GMT辅助文献计量学绘制作者产出和引用图

在分析某一领域的核心贡献者时,往往使用年发文数量和年平均引用数量这两个指标,怎么将这两个指标在一个图形中展示呢?计量软件bibliometrix工具可以绘制这类图形,但是不容易被大众解读。今天推荐GMT的一个特别工具wiggle实现该目标。我们使用的例子还是卫星测高这个研究群体。

数据准备

从WoS下载卫星测高主题的元数据,1970年到2021年大约有8500多篇,作者有1,5000多位。

将数据导入bibliometrix软件。

bibliometrix是一个R语言的文献计量软件包,统计分析的功能较为强大,绘图的灵活性较弱。这里我们仅使用其统计功能。更多参考:https://bibliometrix.org/

在作者一栏,我们选择:

这里就可以看到图形了,但是不仔细看,分不清楚引用量是怎么表达的。

仔细看的话,发现圆点的大小表示论文数量,圆点的颜色深浅表示引用数量,这种展示对于量化分析并不友好。

我们选择保存为csv文件,然后让GMT来绘图:

GMT代码

由于在一个csv文件中包含了所有信息,绘图需要使用循环的脚本,这里采用pygmtPython相结合绘图。

主要代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
df = pd.read_csv(r".\author\Author_Production_Over_Time.csv")
au=df['Author']

fig = pygmt.Figure()
fig.basemap(region=[1978, 2023, -20, 200], projection="X15c/15c", frame=["Snlr", "xaf1"])

fruits = au.unique()
fruits=fruits[::-1]
k=-10
for index in range(len(fruits)):
print ('Present author : %s' % fruits[index])
z=df['freq'][df['Author']== fruits[index]]
x=df['year'][df['Author']== fruits[index]]
y=np.ones(x.values.size)+k
k=k+10

if k == 0:
fig.wiggle(
x=x.values,
y=y,
z=z.values,

# Set anomaly scale to "20c"
scale="20",
# Fill positive and negative areas red and gray, respectively
color=["red+p", "gray+n"],
# Set the outline width to "1.0p"
pen="1.0p",
# Draw a blue track with a width of 0.5 points
track="0.5p,blue",
# Plot a vertical scale bar at the right middle. The bar length is 100 in
position="jLT+w10+lpublications+o0.2/0.2",
transparency=50,
)
else:
fig.wiggle(
x=x.values,
y=y,
z=z.values,

# Set anomaly scale to "20c"
scale="20",
# Fill positive and negative areas red and gray, respectively
color=["red+p", "gray+n"],
# Set the outline width to "1.0p"
pen="1.0p",
# Draw a blue track with a width of 0.5 points
track="0.5p,blue",
transparency=50,
)



k=-10
for index in range(len(fruits)):
print ('Present author : %s' % fruits[index])
z=df['TCpY'][df['Author']== fruits[index]]
x=df['year'][df['Author']== fruits[index]]
y=np.ones(x.values.size)+k
k=k+10
if k == 0:
fig.wiggle(
x=x.values,
y=y,
z=-z.values,

# Set anomaly scale to "20c"
scale="100",
# Fill positive and negative areas red and gray, respectively
color=["red+p", "blue+n"],
# Set the outline width to "1.0p"
pen="1.0p",
# Draw a blue track with a width of 0.5 points
track="0.5p,blue",
# Plot a vertical scale bar at the right middle. The bar length is 100 in
position="jLT+w50+lcitations/year+o0.2/0.9",
transparency=50,
)
else:
fig.wiggle(
x=x.values,
y=y,
z=-z.values,

# Set anomaly scale to "20c"
scale="100",
# Fill positive and negative areas red and gray, respectively
color=["red+p", "blue+n"],
# Set the outline width to "1.0p"
pen="1.0p",
# Draw a blue track with a width of 0.5 points
track="0.5p,blue",
transparency=50,
)

k=-10
for index in range(len(fruits)):

k=k+10

fig.text(
region=[1978, 2030, -20, 200],
projection="X20c/15c",
x=2017,
y=1+k-10,
text=fruits[index],
font="Courier-Bold",
justify="BL",
offset="0.75c/0c",
)
fig.show()

结果

图上方红色区域表示作者的年度论文发表数量,下方的蓝色区域表示当年度发表论文的年均引用量。

可以看出卫星测高领域产出最大和引用最多的作者中有多位多位中国人,排名首位的是美国The Ohio State University的华人C.K. Shum。

测试数据和代码:https://www.jianguoyun.com/p/DR0zR7YQ2PCQBxiK_MwEIAA

文献计量分析的GMT案例到此结束。

交流群

因为公众号留言功能未开通,为了促进交流,小编建立了一个QQ交流群,欢迎大家入群。暂时没开通微信群。

主要功能定位:

  • 交流国内外卫星遥感数据信息和现场实测数据信息
  • 对国内海洋实测数据的申请提供必要的指导
  • 物理海洋、大地测量、海洋遥感等学科交流
  • 传播有价值的科研工具、开源程序,提高科研生产力