法律和经济科学

法学实证 | 谁是法学类CSSCI期刊被引次数最多的学者?

发表时间:2025-08-31 16:35

在学术期刊中,被引次数对作者而言,远不止一个简单的数字。它是衡量学术影响力、贡献和认可度的核心量化指标之一。对作者个人而言,意味着:

(一)学术影响力的直接体现

被引次数本质上是学术界的“点赞”或“引用”。当其他研究者引用你的工作时,表明他们阅读了你的论文,并认为其价值足以作为他们自己研究的基石、佐证或讨论对象。被引次数越高,说明你的工作在该领域内引发的关注越多,产生的影响越大。

(二)研究质量的间接信号

虽然并非绝对(可能存在局限性,例如批判性引证),但高被引通常与高质量的研究相关联。它暗示你的工作具有原创性、重要性、可靠性,其他学者信任你的方法、数据或结论,并愿意在其基础上进行构建。一篇漏洞百出或无关紧要的论文很难获得大量引用。

(三)职业发展的关键资本

求职与晋升:在大学或研究机构求职、评职称( tenure-track )、晋升时,被引次数(尤其是代表作的高被引)是评估候选人学术成就和国际/国内影响力的硬性指标之一。

申请经费:在向各类基金(如国家自然科学基金、社会科学基金)申请研究经费时,申请人过往研究成果的被引情况是评审专家衡量其研究能力和项目可行性的重要参考。高被引记录能极大地提升中标概率。

争夺人才头衔:各类“人才计划”(如中国的“长江学者”、“杰青”,国外的各种讲席教授职位)的评选,高被引次数几乎是标配。

(四)建立学术声誉与话语权

持续产出高被引成果的作者,会逐渐被公认为该领域的专家或思想领袖。这会带来更多的机会,从而获得更高的学术话语权。

对于希望在国际学术界立足的学者来说,高被引次数是一种“通用货币”。它能够快速地向全球同行证明自己的价值,吸引国际合作者,建立广泛的学术网络。

此外,从更广阔的视角看,对学者所在机构而言,作者的被引次数会直接提升其所在大学或研究机构的排名和声誉。例如,许多世界大学排名都将“师均引用”作为核心指标。因此,机构本身也有强烈动机去招募和奖励高被引学者;对学科发展而言,一篇高被引论文往往标志着该研究引领或推动了某个研究方向,可能开辟了一个新领域,或者解决了某个长期存在的难题。通过分析一个学者的被引情况,可以描绘出学术思想的传播路径和知识网络。

(五)本文的统计标准和时间截点

采用中文社会科学引文索引CSSCI(Chinese Social Sciences Citation Index)。具体而言,以CSSCI来源期刊目录(2023-2024)为准,包括下述24本法学CSSCI期刊。

引证数据来源为:中国知网。

数据统计时间:2025年7月26日-8月6日。

总被引次数的计算公式为:作者在上述期刊中所发论文被引证的总数。

总被引次数是指一位学者所有研究成果被引用的累计总和。它反映的是学者在其整个学术生涯中所产生的总体影响力和贡献体量。总被引次数 = 学术影响力的“广度”和“总量”。

王利明、张明楷、陈兴良等法学学者的总被引次数极高。这体现了他们数十年来深耕法学领域,著述等身,其工作被整个学界广泛参考和借鉴。

平均被引次数的计算公式为:该作者的总被引次数/发表论文数量。

平均被引次数通常由总被引次数除以发表论文总数得出。它衡量的是学者平均每篇论文的影响力,更能反映其研究的平均质量、创新性和认可度。平均被引次数 = 学术影响力的“深度”和“效率”

吴汉东、陈瑞华、张新宝等学者的平均被引次数名列前茅。这表明他们不仅产量高,更重要的是,他们的论文平均质量非常出色,每发表一篇文章都能产生较大的学术影响,研究效率极高。

注:期刊排名不分先后,紧接着刊物名称后的时间是统计时间范围,例如第一本《比较法研究》,统计时间范围是1989-2025年8月6日。

1-比较法研究1989-2025

2-当代法学1989-2025

3-东方法学2008-2025

4-法律科学1984-2025

5-法商研究1957-2025

6-法学1997-2025

7-法学家1986-2025

8-法学论坛1989-2025

9-法学评论1984-2025

10-法学研究1954-2025

11-法制与社会发展1995-2025

12-国家检察官学院学报1993-2025

13-行政法学研究1993-2025

14-华东政法大学学报1999-2025

15-环球法律评论1979-2025

16-清华法学2003-2025

17-现代法学1980-2025

18-政法论丛1995-2025

19-政法论坛1984-2025

20-政治与法律1989-2025

21-中国法律评论2014-2025

22-中国法学1984-2025

23-中国刑事法杂志1993-2025

24-中外法学1979-2025

(一)法学类CSSCI期刊总被引次数最多的学者(TOP99)为

1. 第一位:王利明,总被引次数:46243

2. 第二位:张明楷,总被引次数:43557

3. 第三位:陈兴良,总被引次数:33565

4. 第四位:陈瑞华,总被引次数:30901

5. 第五位:吴汉东,总被引次数:18703

6. 第六位:杨立新,总被引次数:18327

7. 第七位:龙宗智,总被引次数:18316

8. 第八位:刘艳红,总被引次数:17067

9. 第九位:张新宝,总被引次数:16246

10. 第十位:张卫平,总被引次数:15703

11. 第十一位:周光权,总被引次数:14865

12. 第十二位:刘宪权,总被引次数:12842

13. 第十三位:崔建远,总被引次数:11885

14. 第十四位:张文显,总被引次数:11748

15. 第十五位:陈卫东,总被引次数:10961

16. 第十六位:吕忠梅,总被引次数:10760

17. 第十七位:劳东燕,总被引次数:10580

18. 第十八位:程啸,总被引次数:10430

19. 第十九位:高圣平,总被引次数:10331

20. 第二十位:苏力,总被引次数:10298

21. 第二十一位:左卫民,总被引次数:10268

22. 第二十二位:李浩,总被引次数:9965

23. 第二十三位:陈光中,总被引次数:9737

24. 第二十四位:王迁,总被引次数:9026

25. 第二十五位:黎宏,总被引次数:8662

26. 第二十六位:丁晓东,总被引次数:8624

27. 第二十七位:王锡锌,总被引次数:8513

28. 第二十八位:赵秉志,总被引次数:8335

29. 第二十九位:梁慧星,总被引次数:7712

30. 第三十位:于志刚,总被引次数:7377

31. 第三十一位:张翔,总被引次数:7102

32. 第三十二位:江必新,总被引次数:7004

33. 第三十三位:马长山,总被引次数:6979

34. 第三十四位:周佑勇,总被引次数:6934

35. 第三十五位:张守文,总被引次数:6707

36. 第三十六位:何家弘,总被引次数:6453

37. 第三十七位:韩大元,总被引次数:6255

38. 第三十八位:姜明安,总被引次数:6254

39. 第三十九位:姜涛,总被引次数:5920

40. 第四十位:陈金钊,总被引次数:5897

41. 第四十一位:雷磊,总被引次数:5865

42. 第四十二位:蒋大兴,总被引次数:5858

43. 第四十三位:李永军,总被引次数:5666

44. 第四十四位:秦前红,总被引次数:5665

45. 第四十五位:刘明祥,总被引次数:5421

46. 第四十六位:童之伟,总被引次数:5249

47. 第四十七位:汤维建,总被引次数:5151

48. 第四十八位:章志远,总被引次数:5099

49. 第四十九位:万毅,总被引次数:5049

50. 第五十位:章剑生,总被引次数:5011

51. 第五十一位:马怀德,总被引次数:4939

52. 第五十二位:张千帆,总被引次数:4904

53. 第五十三位:徐国栋,总被引次数:4887

54. 第五十四位:应松年,总被引次数:4701

55. 第五十五位:余凌云,总被引次数:4696

56. 第五十六位:卞建林,总被引次数:4514

57. 第五十七位:王贵松,总被引次数:4502

58. 第五十八位:房绍坤,总被引次数:4475

59. 第五十九位:叶必丰,总被引次数:4408

60. 第六十位:刘作翔,总被引次数:4355

61. 第六十一位:王福华,总被引次数:4268

62. 第六十二位:谢晖,总被引次数:4189

63. 第六十三位:郭道晖,总被引次数:3922

64. 第六十四位:高铭暄,总被引次数:3890

65. 第六十五位:樊崇义,总被引次数:3876

66. 第六十六位:胡玉鸿,总被引次数:3693

67. 第六十七位:张红,总被引次数:3673

68. 第六十八位:王保树,总被引次数:3625

69. 第六十九位:宋英辉,总被引次数:3610

70. 第七十位:周永坤,总被引次数:3598

71. 第七十一位:常鹏翱,总被引次数:3279

72. 第七十二位:杨兴培,总被引次数:3192

73. 第七十三位:黄文艺,总被引次数:3148

74. 第七十四位:张建伟,总被引次数:3010

75. 第七十五位:范进学,总被引次数:2997

76. 第七十六位:何勤华,总被引次数:2844

77. 第七十七位:徐崇利,总被引次数:2819

78. 第七十八位:杨解君,总被引次数:2808

79. 第七十九位:刘仁文,总被引次数:2758

80. 第八十位:何志鹏,总被引次数:2677

81. 第八十一位:公丕祥,总被引次数:2623

82. 第八十二位:贾宇,总被引次数:2502

83. 第八十三位:王健,总被引次数:2485

84. 第八十四位:关保英,总被引次数:2374

85. 第八十五位:谢望原,总被引次数:2151

86. 第八十六位:江国华,总被引次数:2083

87. 第八十七位:莫纪宏,总被引次数:1918

88. 第八十八位:郝铁川,总被引次数:1873

89. 第八十九位:杨海坤,总被引次数:1870

90. 第九十位:周伟,总被引次数:1818

91. 第九十一位:李林,总被引次数:1713

92. 第九十二位:张晋藩,总被引次数:1631

93. 第九十三位:史际春,总被引次数:1560

94. 第九十四位:王勇,总被引次数:1546

95. 第九十五位:胡锦光,总被引次数:1252

96. 第九十六位:喻中,总被引次数:1234

97. 第九十七位:王立民,总被引次数:1001

98. 第九十八位:潘汉典,总被引次数:515

99. 第九十九位:康树华,总被引次数:412


(二)法学类CSSCI期刊平均被引次数(TOP99学者为:

1. 第一位:吴汉东,平均被引次数:205.5274725

2. 第二位:陈瑞华,平均被引次数:194.3459119

3. 第三位:张明楷,平均被引次数:186.1410256

4. 第四位:张新宝,平均被引次数:176.5869565

5. 第五位:王利明,平均被引次数:171.2703704

6. 第六位:劳东燕,平均被引次数:162.7692308

7. 第七位:吕忠梅,平均被引次数:158.2352941

8. 第八位:丁晓东,平均被引次数:156.8

9. 第九位:王锡锌,平均被引次数:152.0178571

10. 第十位:苏力,平均被引次数:143.0277778

11. 第十一位:程啸,平均被引次数:132.0253165

12. 第十二位:张卫平,平均被引次数:131.9579832

13. 第十三位:马长山,平均被引次数:131.6792453

14. 第十四位:龙宗智,平均被引次数:126.3172414

15. 第十五位:王迁,平均被引次数:123.6438356

16. 第十六位:高圣平,平均被引次数:121.5411765

17. 第十七位:杨立新,平均被引次数:121.3708609

18. 第十八位:黎宏,平均被引次数:117.0540541

19. 第十九位:陈兴良,平均被引次数:116.1418685

20. 第二十位:周光权,平均被引次数:115.2325581

21. 第二十一位:刘艳红,平均被引次数:113.0264901

22. 第二十二位:张翔,平均被引次数:112.7301587

23. 第二十三位:于志刚,平均被引次数:106.9130435

24. 第二十四位:陈光中,平均被引次数:104.6989247

25. 第二十五位:梁慧星,平均被引次数:98.87179487

26. 第二十六位:李浩,平均被引次数:98.66336634

27. 第二十七位:张文显,平均被引次数:97.9

28. 第二十八位:崔建远,平均被引次数:97.41803279

29. 第二十九位:刘宪权,平均被引次数:96.55639098

30. 第三十位:周佑勇,平均被引次数:93.7027027

31. 第三十一位:蒋大兴,平均被引次数:90.12307692

32. 第三十二位:雷磊,平均被引次数:86.25

33. 第三十三位:左卫民,平均被引次数:84.16393443

34. 第三十四位:何家弘,平均被引次数:82.73076923

35. 第三十五位:姜明安,平均被引次数:82.28947368

36. 第三十六位:王贵松,平均被引次数:80.39285714

37. 第三十七位:张守文,平均被引次数:79.8452381

38. 第三十八位:张千帆,平均被引次数:79.09677419

39. 第三十九位:章剑生,平均被引次数:78.296875

40. 第四十位:陈卫东,平均被引次数:77.73758865

41. 第四十一位:王福华,平均被引次数:76.21428571

42. 第四十二位:马怀德,平均被引次数:75.98461538

43. 第四十三位:余凌云,平均被引次数:75.74193548

44. 第四十四位:李永军,平均被引次数:75.54666667

45. 第四十五位:卞建林,平均被引次数:74

46. 第四十六位:章志远,平均被引次数:71.81690141

47. 第四十七位:刘作翔,平均被引次数:71.39344262

48. 第四十八位:应松年,平均被引次数:71.22727273

49. 第四十九位:刘明祥,平均被引次数:70.4025974

50. 第五十位:汤维建,平均被引次数:69.60810811

51. 第五十一位:江必新,平均被引次数:68.66666667

52. 第五十二位:房绍坤,平均被引次数:67.8030303

53. 第五十三位:王保树,平均被引次数:65.90909091

54. 第五十四位:秦前红,平均被引次数:65.87209302

55. 第五十五位:宋英辉,平均被引次数:63.33333333

56. 第五十六位:叶必丰,平均被引次数:62.08450704

57. 第五十七位:万毅,平均被引次数:61.57317073

58. 第五十八位:常鹏翱,平均被引次数:59.61818182

59. 第五十九位:樊崇义,平均被引次数:58.72727273

60. 第六十位:张红,平均被引次数:57.390625

61. 第六十一位:陈金钊,平均被引次数:54.60185185

62. 第六十二位:范进学,平均被引次数:52.57894737

63. 第六十三位:姜涛,平均被引次数:51.47826087

64. 第六十四位:周永坤,平均被引次数:51.4

65. 第六十五位:童之伟,平均被引次数:50.47115385

66. 第六十六位:张建伟,平均被引次数:49.3442623

67. 第六十七位:杨兴培,平均被引次数:48.36363636

68. 第六十八位:郭道晖,平均被引次数:47.25301205

69. 第六十九位:王健,平均被引次数:46.01851852

70. 第七十位:徐崇利,平均被引次数:45.46774194

71. 第七十一位:杨解君,平均被引次数:45.29032258

72. 第七十二位:贾宇,平均被引次数:44.67857143

73. 第七十三位:刘仁文,平均被引次数:44.48387097

74. 第七十四位:赵秉志,平均被引次数:44.33510638

75. 第七十五位:徐国栋,平均被引次数:44.02702703

76. 第七十六位:黄文艺,平均被引次数:43.72222222

77. 第七十七位:韩大元,平均被引次数:42.55102041

78. 第七十八位:高铭暄,平均被引次数:42.2826087

79. 第七十九位:胡玉鸿,平均被引次数:41.96590909

80. 第八十位:谢晖,平均被引次数:41.06862745

81. 第八十一位:谢望原,平均被引次数:37.73684211

82. 第八十二位:江国华,平均被引次数:35.9137931

83. 第八十三位:公丕祥,平均被引次数:34.97333333

84. 第八十四位:郝铁川,平均被引次数:32.85964912

85. 第八十五位:杨海坤,平均被引次数:32.24137931

86. 第八十六位:何志鹏,平均被引次数:30.07865169

87. 第八十七位:李林,平均被引次数:29.53448276

88. 第八十八位:史际春,平均被引次数:27.85714286

89. 第八十九位:莫纪宏,平均被引次数:27.4

90. 第九十位:周伟,平均被引次数:26.73529412

91. 第九十一位:关保英,平均被引次数:24.72916667

92. 第九十二位:张晋藩,平均被引次数:24.34328358

93. 第九十三位:何勤华,平均被引次数:20.75912409

94. 第九十四位:胡锦光,平均被引次数:20.52459016

95. 第九十五位:王勇,平均被引次数:19.08641975

96. 第九十六位:喻中,平均被引次数:16.67567568

97. 第九十七位:王立民,平均被引次数:14.09859155

98. 第九十八位:潘汉典,平均被引次数:8.046875

99. 第九十九位:康树华,平均被引次数:6.64516129

注:被引次数是一个重要、有用但并未尽善尽美的指标。在评价一位学者时,应当将其与论文发表期刊的质量、同行评议、研究成果的实际应用价值、社会影响等多维度指标结合起来,进行综合评估。

此外,由于数据多、刊物多、时间跨度大,存在作者同名、单位变动等情形,批量识别具有一定的难度和误差;本次统计,并未统计上述作者被法学类CSSCI期刊之外的C刊引证的数据。

附:批量识别的python代码


import os

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.font_manager as fm

from collections import defaultdict

import warnings

warnings.filterwarnings('ignore')


# 解决中文显示问题

plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun', 'KaiTi', 'FangSong']

plt.rcParams['axes.unicode_minus'] = False


# 尝试直接指定字体文件路径

try:

    font_path = 'C:/Windows/Fonts/simhei.ttf'   # Windows系统黑体字体路径

    font_prop = fm.FontProperties(fname=font_path)

    plt.rcParams['font.family'] = font_prop.get_name()

except:

    print("无法加载指定字体,使用默认字体设置")


# 创建目标文件夹

target_dir = r"C:\Users\50513\Desktop\法学期刊的文本分析\最有影响力学者"

os.makedirs(target_dir, exist_ok=True)

print(f"已创建目标文件夹: {target_dir}")


# 源文件夹路径

source_dir = r"C:\Users\50513\Desktop\法学期刊的文本分析\知网-摘要和关键词-2025-8-6爬取(可否增加编辑成员的身份信息来分析交叉学科受冷淡的原因?)"


# 获取所有Excel文件

excel_files = [f for f in os.listdir(source_dir) if f.endswith('.xlsx')]

print(f"找到 {len(excel_files)} 个Excel文件")


# 存储全局作者统计数据

global_author_freq = defaultdict(int)

global_author_citations = defaultdict(int)


# 定义处理作者列的函数

def process_authors_column(df):

    """处理作者列,分割多位作者并展开"""

    # 创建作者列表和对应的被引次数

    authors_list = []

    citations_list = []


    for idx, row in df.iterrows():

        authors = str(row['作者'])

        citation = row['被引次数']


        # 分割作者(使用分号作为分隔符)

        author_items = [a.strip() for a in authors.split(';') if a.strip()]


        # 过滤掉空作者和未知作者

        valid_authors = [a for a in author_items if a and a != '未知作者']


        # 为每个作者添加记录

        for author in valid_authors:

            authors_list.append(author)

            citations_list.append(citation)


    # 创建新的DataFrame

    return pd.DataFrame({

        '作者': authors_list,

        '被引次数': citations_list

    })


# 定义绘制图表的函数

def plot_author_stats(author_stats, title_prefix, output_path, is_global=False):

    """绘制作者统计图表"""

    # 设置图表风格

    plt.style.use('default')


    # 创建图表

    fig, axes = plt.subplots(2, 2, figsize=(15, 12))

    fig.suptitle(f'{title_prefix} - TOP作者分析', fontsize=16, fontproperties=font_prop)


    # 确定列名

    freq_col = '总出现频次' if is_global else '出现频次'

    cite_col = '总被引次数' if is_global else '总被引次数'

    avg_col = '平均被引次数'


    # 1. 出现频次TOP20

    top20_freq = author_stats.head(20).sort_values(freq_col, ascending=True)

    axes[0, 0].barh(range(len(top20_freq)), top20_freq[freq_col], color='steelblue')

    axes[0, 0].set_yticks(range(len(top20_freq)))

    axes[0, 0].set_yticklabels(top20_freq['作者'], fontproperties=font_prop)

    axes[0, 0].set_title('出现频次TOP20作者', fontproperties=font_prop)

    axes[0, 0].set_xlabel('出现频次', fontproperties=font_prop)


    # 2. 总被引次数TOP20

    top20_citations = author_stats.sort_values(cite_col, ascending=False).head(20).sort_values(cite_col, ascending=True)

    axes[0, 1].barh(range(len(top20_citations)), top20_citations[cite_col], color='coral')

    axes[0, 1].set_yticks(range(len(top20_citations)))

    axes[0, 1].set_yticklabels(top20_citations['作者'], fontproperties=font_prop)

    axes[0, 1].set_title('总被引次数TOP20作者', fontproperties=font_prop)

    axes[0, 1].set_xlabel('总被引次数', fontproperties=font_prop)


    # 3. 平均被引次数TOP20 (至少出现3次)

    min_freq = 5 if is_global else 3

    top20_avg = author_stats[author_stats[freq_col] >= min_freq].sort_values(

        avg_col, ascending=False).head(20).sort_values(avg_col, ascending=True)

    axes[1, 0].barh(range(len(top20_avg)), top20_avg[avg_col], color='seagreen')

    axes[1, 0].set_yticks(range(len(top20_avg)))

    axes[1, 0].set_yticklabels(top20_avg['作者'], fontproperties=font_prop)

    axes[1, 0].set_title(f'平均被引次数TOP20作者(至少出现{min_freq}次)', fontproperties=font_prop)

    axes[1, 0].set_xlabel('平均被引次数', fontproperties=font_prop)


    # 4. 出现频次与被引次数的散点图

    axes[1, 1].scatter(author_stats[freq_col], author_stats[cite_col], alpha=0.6, color='purple')

    axes[1, 1].set_xlabel('出现频次', fontproperties=font_prop)

    axes[1, 1].set_ylabel('被引次数', fontproperties=font_prop)

    axes[1, 1].set_title('出现频次与被引次数关系', fontproperties=font_prop)

    axes[1, 1].grid(True)


    # 添加趋势线

    z = np.polyfit(author_stats[freq_col], author_stats[cite_col], 1)

    p = np.poly1d(z)

    axes[1, 1].plot(author_stats[freq_col], p(author_stats[freq_col]), "r--", alpha=0.8)


    plt.tight_layout()

    plt.savefig(output_path, dpi=300, bbox_inches='tight')

    plt.close()


# 处理每个Excel文件

for i, file in enumerate(excel_files, 1):

    print(f"处理文件 {i}/{len(excel_files)}: {file}")


    try:

        # 读取Excel文件

        file_path = os.path.join(source_dir, file)

        df = pd.read_excel(file_path)


        # 确保有需要的列

        if '作者' not in df.columns or '被引次数' not in df.columns:

            print(f"文件 {file} 缺少必要的列,跳过处理")

            continue


        # 预处理数据:处理可能的NaN值

        df['作者'] = df['作者'].fillna('未知作者')

        df['被引次数'] = pd.to_numeric(df['被引次数'], errors='coerce').fillna(0)


        # 处理作者列,分割多位作者

        df_processed = process_authors_column(df)


        # 计算每个作者的频次和总被引次数

        author_stats = df_processed.groupby('作者').agg(

            出现频次=('作者', 'count'),

            总被引次数=('被引次数', 'sum')

        ).reset_index()


        # 计算平均被引次数

        author_stats['平均被引次数'] = author_stats['总被引次数'] / author_stats['出现频次']


        # 按出现频次排序并取前50

        top_50 = author_stats.sort_values('出现频次', ascending=False).head(50)


        # 为当前文件绘制图表

        file_output_dir = os.path.join(target_dir, f"{os.path.splitext(file)[0]}_分析结果")

        os.makedirs(file_output_dir, exist_ok=True)


        plot_author_stats(

            author_stats,

            os.path.splitext(file)[0],

            os.path.join(file_output_dir, f'{os.path.splitext(file)[0]}_TOP作者分析图表.png')

        )


        # 保存当前文件的TOP50作者

        output_file = os.path.join(file_output_dir, f"{os.path.splitext(file)[0]}_TOP50作者.xlsx")

        top_50.to_excel(output_file, index=False)


        # 更新全局统计

        for _, row in author_stats.iterrows():

            author = row['作者']

            global_author_freq[author] += row['出现频次']

            global_author_citations[author] += row['总被引次数']


    except Exception as e:

        print(f"处理文件 {file} 时出错: {str(e)}")

        continue


print("已完成各文件的单独分析,开始全局分析...")


# 创建全局作者DataFrame

global_authors = pd.DataFrame({

    '作者': list(global_author_freq.keys()),

    '总出现频次': [global_author_freq[a] for a in global_author_freq],

    '总被引次数': [global_author_citations[a] for a in global_author_freq]

})


# 计算平均被引次数

global_authors['平均被引次数'] = global_authors['总被引次数'] / global_authors['总出现频次']


# 按总出现频次排序并取前100

top_100_global = global_authors.sort_values('总出现频次', ascending=False).head(100)


# 保存全局TOP100作者

global_output_path = os.path.join(target_dir, "全局TOP100最有影响力学者.xlsx")

top_100_global.to_excel(global_output_path, index=False)


# 创建全局可视化图表

plot_author_stats(

    top_100_global,

    "全局TOP100最有影响力学者",

    os.path.join(target_dir, '全局TOP100作者分析图表.png'),

    is_global=True

)


# 创建额外的全局分析图表

fig, axes = plt.subplots(1, 2, figsize=(16, 6))


# 1. 出现频次分布直方图

axes[0].hist(top_100_global['总出现频次'], bins=20, color='steelblue', alpha=0.7)

axes[0].set_xlabel('出现频次', fontproperties=font_prop)

axes[0].set_ylabel('作者数量', fontproperties=font_prop)

axes[0].set_title('TOP100作者出现频次分布', fontproperties=font_prop)

axes[0].grid(True)


# 2. 被引次数分布直方图

axes[1].hist(top_100_global['总被引次数'], bins=20, color='coral', alpha=0.7)

axes[1].set_xlabel('被引次数', fontproperties=font_prop)

axes[1].set_ylabel('作者数量', fontproperties=font_prop)

axes[1].set_title('TOP100作者被引次数分布', fontproperties=font_prop)

axes[1].grid(True)


plt.tight_layout()

plt.savefig(os.path.join(target_dir, '全局TOP100作者分布图表.png'), dpi=300, bbox_inches='tight')

plt.close()


# 输出汇总统计

print("\n===== 分析完成 =====")

print(f"共分析了 {len(excel_files)} 个Excel文件")

print(f"全局TOP100作者数据已保存至: {global_output_path}")

print(f"各文件的TOP50作者数据和图表已保存至目标文件夹的相应子文件夹中")

print(f"全局可视化图表已保存至目标文件夹")


# 显示一些关键统计数据

print("\n===== 关键统计数据 =====")

print(f"TOP100作者总出现频次: {top_100_global['总出现频次'].sum()}")

print(f"TOP100作者总被引次数: {top_100_global['总被引次数'].sum()}")

print(f"TOP100作者平均被引次数: {top_100_global['平均被引次数'].mean():.2f}")

print(f"出现频次最高的作者: {top_100_global.iloc[0]['作者']} (出现{top_100_global.iloc[0]['总出现频次']}次)")

print(f"被引次数最高的作者: {top_100_global.loc[top_100_global['总被引次数'].idxmax()]['作者']} (被引{top_100_global['总被引次数'].max()}次)")

print(f"平均被引次数最高的作者: {top_100_global.loc[top_100_global['平均被引次数'].idxmax()]['作者']} (平均被引{top_100_global['平均被引次数'].max():.2f}次/篇)")


# 保存详细的统计摘要

summary_stats = {

    "分析文件数量": len(excel_files),

    "TOP100作者总出现频次": top_100_global['总出现频次'].sum(),

    "TOP100作者总被引次数": top_100_global['总被引次数'].sum(),

    "TOP100作者平均被引次数": top_100_global['平均被引次数'].mean(),

    "出现频次最高作者": top_100_global.iloc[0]['作者'],

    "出现频次最高次数": top_100_global.iloc[0]['总出现频次'],

    "被引次数最高作者": top_100_global.loc[top_100_global['总被引次数'].idxmax()]['作者'],

    "最高被引次数": top_100_global['总被引次数'].max(),

    "平均被引最高作者": top_100_global.loc[top_100_global['平均被引次数'].idxmax()]['作者'],

    "最高平均被引次数": top_100_global['平均被引次数'].max()

}


summary_df = pd.DataFrame(list(summary_stats.items()), columns=['指标', '值'])

summary_df.to_excel(os.path.join(target_dir, '分析摘要.xlsx'), index=False)