以下代码使用 Pandas, Numpy 和 Matplotlib 库对论文数据进行处理和可视化:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取 Excel 文件
df = pd.read_excel('D:/大学/大二/下学期/数据可视化/期末作业/数据整理/被引次数.xlsx')

# 对被引频次进行降序排序,并抽出前十条数据
df_top10 = df.sort_values(by='被引频次', ascending=False)[:10]

# 设置 X 轴的间距和标签
x_ticks = np.arange(0, len(df_top10))
x_labels = df_top10['论文名称'].tolist()

# 可视化柱状图
plt.figure(figsize=(10, 6))
plt.bar(x_ticks, df_top10['被引频次'], width=0.5, color='blue')
plt.xticks(x_ticks, x_labels, rotation=45, ha='right', fontsize=12)
plt.xlabel('论文名称', fontsize=14)
plt.ylabel('被引频次', fontsize=14)
plt.title('前十篇论文被引频次排名', fontsize=16)

# 可视化步阶图
plt.figure(figsize=(10, 6))
plt.step(df_top10.index, df_top10['发表时间'], where='post', color='red')
plt.xticks(df_top10.index, df_top10['论文名称'], rotation=45, ha='right', fontsize=12)
plt.xlabel('论文名称', fontsize=14)
plt.ylabel('发表时间', fontsize=14)
plt.title('前十篇论文发表时间', fontsize=16)

# 合并柱状图和步阶图
fig, ax1 = plt.subplots(figsize=(10, 6))
ax2 = ax1.twinx()
ax1.bar(x_ticks, df_top10['被引频次'], width=0.5, color='blue')
ax2.step(df_top10.index, df_top10['发表时间'], where='post', color='red')
ax1.set_xticks(x_ticks)
ax1.set_xticklabels(x_labels, rotation=45, ha='right', fontsize=12)
ax1.set_xlabel('论文名称', fontsize=14)
ax1.set_ylabel('被引频次', fontsize=14, color='blue')
ax2.set_ylabel('发表时间', fontsize=14, color='red')
ax1.tick_params(axis='y', labelcolor='blue')
ax2.tick_params(axis='y', labelcolor='red')
ax1.set_title('前十篇论文被引频次排名和发表时间', fontsize=16)

plt.show()

该代码首先读取 Excel 文件,并对被引频次进行降序排序,然后抽取前十条数据进行可视化。柱状图用于表示前十篇论文的被引频次排名,步阶图用于表示前十篇论文的发表时间。最后,使用 subplots 函数将柱状图和步阶图合并在一起,并将两个图形的 Y 轴设置成不同的颜色,以区分两者。

Python Pandas 和 Matplotlib 可视化:论文被引频次及发表时间分析

原文地址: https://www.cveoy.top/t/topic/o0kd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录