import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示
plt.rcParams['axes.unicode_minus'] = False #解决符号无法显示
data = pd.read_excel('../data/homen.xlsx')
# 删除含有空值的行
data = data.dropna()
# 提取特定行的数据
row_data = data.iloc[0:]
# 提取特定列的数据
col_data = data.iloc[1:, :2]
data_10 = col_data.head(10)
#print(row_data)
print('____________________')
# print(col_data)
print(data_10)
____________________ 地区 人口数 3 北京市 21893095 21 天津市 13866009 40 石家庄市 11235086 62 辛集市 594628 63 晋州市 507959 64 新乐市 478529 65 唐山市 7717983 81 遵化市 707047 82 迁安市 776752 83 滦州市 520102 # 按人口数降序排序 data_sorted = col_data.sort_values('人口数', ascending=False) data_sorted_10 = data_sorted.head(10) print(data_sorted_10)
地区 人口数 2363 重庆市 32054159 829 上海市 24870895 3 北京市 21893095 2405 成都市 20937757 2059 广州市 18676605 2082 深圳市 17494398 21 天津市 13866009 887 苏州市 12748262 1586 郑州市 12600574 1787 武汉市 12447718 #绘制柱状图 plt.bar(data_sorted_10['地区'],data_sorted_10['人口数']) plt.xlabel('城市') plt.ylabel('人口') plt.title('中国城市人口TOP10')
# 绘制饼图
plt.figure(figsize=(6, 6)) # 设置画布大小
plt.pie(data_sorted_10['人口数'], labels=data_sorted_10['地区'], autopct='%1.1f%%', startangle=90)
plt.title('各城市人口占比') # 设置标题
plt.axis('equal') # 设置饼图为正圆形
plt.show()