部分国家人均GDP和生活满意度可视化

部分国家人均GDP和生活满意度可视化

0 导入相关库

!pip install pyecharts==1.0

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

from example.commons import Faker # 案例数据
from pyecharts import options as opts #负责图表配置的模块
from pyecharts.charts import Map #地图主要用于地理区域数据的可视化

1 数据下载并预处理

1.1 爬取数据

import os
datapath = os.path.join("datasets", "lifesat", "") # 拼接

import urllib
DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/"
os.makedirs(datapath, exist_ok=True)
for filename in ("oecd_bli_2015.csv", "gdp_per_capita.csv"):
    print("Downloading", filename)
    url = DOWNLOAD_ROOT + "datasets/lifesat/" + filename
    urllib.request.urlretrieve(url, datapath + filename)

1.2 加载数据并整理

oecd_bli = pd.read_csv(datapath + "oecd_bli_2015.csv", thousands=',')
gdp_per_capita = pd.read_csv(datapath + "gdp_per_capita.csv", thousands=',',delimiter='\t',
                             encoding='latin1', na_values="n/a")

def prepare_country_stats(oecd_bli, gdp_per_capita):
    oecd_bli = oecd_bli[oecd_bli["INEQUALITY"]=="TOT"] # 过滤
    oecd_bli = oecd_bli.pivot(index="Country", columns="Indicator", values="Value") # 透视
    gdp_per_capita.rename(columns={"2015": "GDP per capita"}, inplace=True) # 更改轴标签
    gdp_per_capita.set_index("Country", inplace=True) # 重置索引
    full_country_stats = pd.merge(left=oecd_bli, right=gdp_per_capita,
                                  left_index=True, right_index=True) # 合并
    full_country_stats.sort_values(by="GDP per capita", inplace=True) # 排序
    return full_country_stats[["GDP per capita", 'Life satisfaction']] # 所有国家GDP&满意度信息

country_stats = prepare_country_stats(oecd_bli, gdp_per_capita)
print(country_stats.shape)
country_stats

在这里插入图片描述

country_stats.describe()

在这里插入图片描述

2 人均GDP可视化

可视化 #1

原始数据

c = (
        Map()
        .add("GDP per capita", 
             [list(z) for z in zip(list(country_stats.index), list(country_stats['GDP per capita']))], "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-世界地图"),
            visualmap_opts=opts.VisualMapOpts(max_=11e+04	),
        )
    )

c.render_notebook()

在这里插入图片描述

可视化 #2

减去平均值

backup = country_stats['GDP per capita']

country_stats['GDP per capita'].mean()

在这里插入图片描述

country_stats['GDP per capita'] = (country_stats['GDP per capita'] - country_stats['GDP per capita'].mean())

country_stats['GDP per capita'].max()

在这里插入图片描述

c = (
        Map()
        .add("GDP per capita", 
             [list(z) for z in zip(list(country_stats.index), list(country_stats['GDP per capita']))], "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-世界地图"),
            visualmap_opts=opts.VisualMapOpts(max_=7e+04	),
        )
    )

c.render_notebook()

美国
在这里插入图片描述
俄罗斯
在这里插入图片描述
Brazil
在这里插入图片描述

3 生活满意度可视化

c = (
        Map()
        .add("Life satisfaction", 
             [list(z) for z in zip(list(country_stats.index), list(country_stats['Life satisfaction']))], "world")
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Map-世界地图"),
            visualmap_opts=opts.VisualMapOpts(max_=8),
        )
    )

c.render_notebook()

美国
在这里插入图片描述
俄罗斯
在这里插入图片描述
Brazil
在这里插入图片描述

4 总结

俄罗斯人均GDP和生活满意度均低于美国
Brazil国家虽然GDP低于俄罗斯美国,但其生活满意度仍然非常高

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值