好的,下面是根据你的要求编写的代码:

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

# 读取Excel数据
data = pd.read_excel(r'D:\大學\大二\下學期\數據可視化\期末作業\數據整理\被引次數.xlsx')

# 对被引频次进行排序
sorted_data = data.sort_values(by='被引频次', ascending=False)

# 抽取前十的数据
top_10_data = sorted_data.head(10)

# 绘制柱状图
plt.figure(figsize=(10, 6))
plt.bar(top_10_data.index, top_10_data['被引频次'])
plt.xlabel('序号')
plt.ylabel('被引频次')
plt.title('被引频次前十数据')
plt.xticks(top_10_data.index, top_10_data['序号'], rotation=45)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文字符
plt.show()

# 提取前十数据的年份
years = top_10_data['年份']

# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(top_10_data.index, years, c='r')
plt.xlabel('序号')
plt.ylabel('年份')
plt.title('前十数据的年份')
plt.xticks(top_10_data.index, top_10_data['序号'], rotation=45)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文字符
plt.show()

# 合并柱状图和散点图
plt.figure(figsize=(10, 6))
plt.bar(top_10_data.index, top_10_data['被引频次'], color='b')
plt.scatter(top_10_data.index, years, c='r')
plt.xlabel('序号')
plt.ylabel('被引频次/年份')
plt.title('被引频次前十数据及其年份')
plt.xticks(top_10_data.index, top_10_data['序号'], rotation=45)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文字符
plt.show()

请确保你的电脑上已经安装了所需的库,并将Excel文件路径替换为你的文件路径。希望对你有帮助!


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

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