You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
5.1 KiB
132 lines
5.1 KiB
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
from pyecharts import options as opts
|
|
from pyecharts.charts import Map
|
|
from pyecharts.charts import Timeline
|
|
|
|
# 性别数据爬取
|
|
url = 'http://www.stats.gov.cn/tjsj/zxfb/202105/t20210510_1817181.html'
|
|
headers = {
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
|
|
cnagedf = pd.read_html(url)[1]
|
|
cnagedf.columns = cnagedf.iloc[1].values
|
|
cnagedf = cnagedf.drop([0, 1, 2, 6]).reset_index(drop=True)
|
|
# matplotlib饼图绘制
|
|
explo = [0, 0, 0.1]
|
|
plt.figure(figsize=(8, 6))
|
|
plt.rcParams.update({'font.family': 'Microsoft YaHei'})
|
|
plt.title('中国人口年龄分布饼图')
|
|
plt.pie(cnagedf['人口数'], labels=cnagedf['年龄'], explode=explo, shadow=True, autopct='%1.2f%%')
|
|
plt.tight_layout()
|
|
plt.show()
|
|
|
|
###第七次不同省份总人口
|
|
def an1():
|
|
name = data['省份'].tolist()[1:]
|
|
value = data['2020年第七次人口普查'].tolist()[1:]
|
|
provinces = [i.replace("\u3000","") for i in name]
|
|
#value = [int(int(i)/10000) for i in value]
|
|
print(provinces)
|
|
print(value)
|
|
c = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第七次不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
).render(path="第七次不同省份总人口.html")
|
|
|
|
###1953~2021年不同省份总人口
|
|
def an2():
|
|
name = data['省份'].tolist()[1:]
|
|
value1 = data['1953年第一次人口普查'].tolist()[1:]
|
|
value2 = data['1964年第二次人口普查'].tolist()[1:]
|
|
value3 = data['1982年第三次人口普查'].tolist()[1:]
|
|
value4 = data['1990年第四次人口普查'].tolist()[1:]
|
|
value5 = data['2000年第五次人口普查'].tolist()[1:]
|
|
value6 = data['2010年第六次人口普查'].tolist()[1:]
|
|
value7 = data['2020年第七次人口普查'].tolist()[1:]
|
|
provinces = [i.replace("\u3000","") for i in name]
|
|
#value = [int(int(i)/10000) for i in value]
|
|
print(provinces)
|
|
|
|
|
|
t = Timeline()
|
|
c1 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value1)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第一次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c1, "第一次人口普查不同省份总人口")
|
|
|
|
c2 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value2)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第二次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c2, "第二次人口普查不同省份总人口")
|
|
|
|
c3 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value3)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第三次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c3, "第三次人口普查不同省份总人口")
|
|
|
|
c4 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value4)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第四次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c4, "第四次人口普查不同省份总人口")
|
|
|
|
c5 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value5)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第五次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c5, "第五次人口普查不同省份总人口")
|
|
|
|
c6 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value6)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第六次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c6, "第六次人口普查不同省份总人口")
|
|
|
|
c7 = (
|
|
Map()
|
|
.add("", [list(z) for z in zip(provinces, value7)], "china")
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(title="第七次人口普查不同省份总人口"),
|
|
visualmap_opts=opts.VisualMapOpts(max_=130000000, split_number=8, is_piecewise=True),
|
|
)
|
|
)
|
|
t.add(c7,"第七次人口普查不同省份总人口")
|
|
|
|
t.render(path="1953~2021年不同省份总人口.html")
|
|
|
|
datafile = u'七次人口普查数据.xlsx'
|
|
data = pd.read_excel(datafile)
|
|
|
|
an1()
|
|
an2() |