部分国家人均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低于俄罗斯
和美国
,但其生活满意度仍然非常高