diff --git a/spider人口普查.txt b/spider人口普查.txt new file mode 100644 index 0000000..482933d --- /dev/null +++ b/spider人口普查.txt @@ -0,0 +1,132 @@ +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() \ No newline at end of file