教你用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言

人口大国通常在全球人口排名中位居前列,其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿,而当前全球的人口总数也不过刚刚突破80亿而已,妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀眼”,以至于后面的那些人口大国遭到了忽视。
这次就获取7个人口大国从1960~2021年的人口数据,做一个简单的数据可视化展示

获取各国历年人口数据

这次的数据,先百度xx国人口,数据就有了,比如美国的。既然找到数据,那剩下的就好办了
在这里插入图片描述
导入模块

import requests
import re
import csv
import json

七国人口数据url

url_list = {
    'https://wap.ceidata.cei.cn/detail?id=4HPs5PzbdUU%3D': '巴基斯坦',
    'https://wap.ceidata.cei.cn/detail?id=qZzzwDe0Dqo%3D': '墨西哥',
    'https://wap.ceidata.cei.cn/detail?id=YJPExELnyz4%3D': '俄罗斯',
    'https://wap.ceidata.cei.cn/detail?id=IK9os%2FE3qus%3D': '巴西',
    'https://wap.ceidata.cei.cn/detail?id=lcQfPi1wriY%3D': '印度',
    'https://wap.ceidata.cei.cn/detail?id=YLwIVWo8jdk%3D': '美国',
    'https://wap.ceidata.cei.cn/detail?id=cfXaPuej8ZY%3D': '中国',
}

获取数据

# for url, name in url_list.items():
url = 'https://wap.ceidata.cei.cn/detail?id=cfXaPuej8ZY%3D'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
response = requests.get(url, headers=headers)
html_data = re.findall('"innerTime":"(\d+)","data":"(.*?)"', response.text)
# json_data = json.loads(html_data)
if len(html_data) == 74:
    html_data = html_data[11:-1]
for date, num in html_data:
    num = float(num) // 100
    dit = {
        '年份': date,
        '人数': num
    }
    print(dit)

保存数据

f = open(f'{name}.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['年份', '人数'])
csv_writer.writeheader()

根据实际需求,你可能需要对提取的数据进行一些处理,如清洗、转换格式等。然后,可以使用适当的方法将数据保存到文件(如CSV、JSON等)或存储到数据库中。

可视化

导入数据

df = pd.read_csv('中国.csv')
df_1 = pd.read_csv('印度.csv')
df_2 = pd.read_csv('美国.csv')
df_3 = pd.read_csv('巴西.csv')
df_4 = pd.read_csv('俄罗斯.csv')
df_5 = pd.read_csv('墨西哥.csv')
df_6 = pd.read_csv('巴基斯坦.csv')

1960-2021年人口变化

from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.faker import Faker
country_list = ['中国', '印度', '美国', '巴西', '俄罗斯', '墨西哥', '巴基斯坦']
# country_list = [ '印度', '美国', '巴西', '俄罗斯', '墨西哥', '巴基斯坦']
tl = Timeline()
date_list = [j for j in range(1960, 2022)]
for i, num in zip(date_list, num_list):
    bar = (
        Bar()
        .add_xaxis(country_list)
        .add_yaxis("人口/百万", num, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("印度", list_1, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("美国", list_2, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("巴西", list_3, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("俄罗斯", list_4, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("墨西哥", list_5, label_opts=opts.LabelOpts(position="right"))
#         .add_yaxis("巴基斯坦", list_6, label_opts=opts.LabelOpts(position="right"))
        .reversal_axis()
        .set_global_opts(
            title_opts=opts.TitleOpts("1960-2021年人口变化 (时间: {} 年)".format(i)),
#             yaxis_opts=opts.AxisOpts(max_=1500)
        )
    )
    tl.add(bar, "{}年".format(i))
tl.render_notebook()

在这里插入图片描述
对比的几个人口大国的数据,中国和印度是目前世界上人口数量最多的两个国家。在这段时间内,中国的人口总量从约6.67亿人增加到约14.12亿人,增长了近一倍。印度的人口总量从约4.46亿人增加到约14.08亿人,增长了约3倍。
其中最为稳定的就是俄罗斯

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 我可以回答这个问题。Tableau是一款数据可视化软件,可以将数据转化为易于理解的图表和图形。以下是一些Tableau数据可视化案例: 1. 世界各国GDP排名:使用地图和条形图展示世界各国的GDP排名,可以直观地比较各国之间的经济实力。 2. 电商销售数据分析:使用折线图和散点图展示电商平台的销售数据,可以分析销售趋势和用户行为。 3. 股票价格分析:使用K线图和趋势线展示股票价格的波动情况,可以帮助投资者做出更明智的投资决策。 4. 健康数据分析:使用仪表盘和漏斗图展示健康数据,可以帮助医生和患者更好地了解健康状况和治疗效果。 以上是一些Tableau数据可视化案例,希望能对您有所帮助。 ### 回答2: Tableau是一款流行的数据可视化工具,能够帮助用户通过图表、图形和仪表板展示和分析大量的数据。 下面是一个Tableau数据可视化的实际案例: 假设我们想要了解一家电商公司的销售情况及趋势。首先,我们可以通过Tableau将公司的销售数据导入到工作区。然后,可以使用Tableau的功能和工具来探索数据。 首先,我们可以创建一个“销售总额按地区”的条形图。该图表显示了不同地区的销售总额,并通过颜色编码来表示不同地区的销售额。从这个图表中,我们可以看到哪些地区的销售额较高,哪些地区的销售额较低。这有助于公司了解销售业绩的区域差异。 接下来,我们可以创建一个“销售趋势”的折线图。该图表显示了公司在不同时间段内的销售额。通过这个图表,我们可以直观地了解销售额的增长或下降趋势。我们还可以将这个图表与其他变量(如广告费用、销售渠道等)进行组合,以进一步分析销售趋势的原因。 此外,我们可以创建一个“产品销售排名”的条形图。该图表显示了公司不同产品的销售额,并按销售额由高到低进行排序。通过这个图表,我们可以看到哪些产品是公司的主要销售产品,哪些产品销售较少。这有助于公司了解产品销售情况,并根据这些信息做出决策。 最后,我们可以创建一个“地图上的销售额分布”的地理图表。该图表将销售数据与地理位置相结合,以一个可视化的方式显示销售额在不同地区的分布情况。通过这个图表,我们可以直观地了解销售的地理分布,对于公司的市场拓展及战略决策具有重要意义。 通过Tableau的数据可视化功能,我们可以更好地了解并分析数据,帮助我们做出更准确的决策。上述案例只是Tableau的一个应用示例,实际上,Tableau可以应用于各个行业和领域的数据可视化分析。 ### 回答3: Tableau数据可视化是一种强大的工具,可以帮助用户以直观且易于理解的方式呈现数据。下面是一个关于销售数据的Tableau数据可视化案例。 假设我们是一家跨国零售公司,想要了解不同产品在不同地区的销售情况。我们有一份销售数据表,其中包括了产品的销售数量、售价、地区等信息。 首先,我们可以通过Tableau将销售数据导入,并进行数据清洗和整理。通过Tableau的数据连接功能,我们可以轻松地将不同表格中的数据连接在一起,形成一个整体的数据集。 接下来,我们可以使用Tableau的图表工具,比如柱状图、饼图和散点图等,来呈现销售数据。例如,我们可以创建一个地理地图,以不同的地区为基准,将销售额以颜色的形式来体现。这样可以清楚地看出哪些地区销售额高,哪些地区销售额低。 此外,我们还可以使用Tableau的交互功能,比如过滤、筛选和排序等,来深入挖掘数据。例如,我们可以添加一个过滤器,选择一个特定的产品类型,然后看该产品在不同地区的销售情况。还可以通过添加动画效果,展示销售额的变化趋势,以及对比不同时间段的销售情况。 最后,我们可以通过Tableau的仪表盘功能,将不同图表和可视化结果整合在一起,形成一个完整的报告。这样的仪表盘可以实时更新数据,并通过分享功能与团队和合作伙伴共享。 综上所述,Tableau数据可视化案例可以帮助我们更好地理解销售数据,找到其背后的规律和趋势,为业务决策提供科学依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值