9.4 Python读取各国GDP数据的json文件并用Pygal绘图

4、读取各国GDP数据的json文件并用Pygal绘图

各国 GDP 数据的 json 文件下载

步骤:

  1. 读取 json 数据
    • json 模块包含了将 json 字符串恢复成 Python 对象函数,也提供了将 Python 对象转换成 JSON 字符串的函数
    • json 模块的 load() 函数加载 json 数据后,读取指定字典中 key 对应的 value
  2. 使用 Pygal 绘图
    • 各国 2001~2016 年的 GDP 柱状图
import json, pygal

with open('gdp_json.json', 'r') as f:
    gdp_data = json.load(f)             # json.load()数据返回的是字典

# 分析如下 5 个国家的 GDP
country_names = ['中国', '美国', '日本', '俄罗斯', '加拿大']
country_codes = ['CHN', 'USA', 'JPN', 'RUS', 'CAN']

country_gdps = [{}, {}, {}, {}, {}]     # 5 个国家对应的字典,{年份1:GDP值1, 年份2:GDP值2,...}

for gdp_item in gdp_data:
    for i,country in enumerate(country_codes):
        if gdp_item['Country Code'] == country:
            year = gdp_item['Year']
            # 获取 2001~2016 年的 GDP 值
            if 2000 < year < 2017:      
                country_gdps[i][year] = gdp_item['Value']

# 字典(无序)转列表
x_data = range(2001, 2017)
country_gdps_list = [[], [], [], [], []]
for i in range(len(country_gdps_list)):
    for year in x_data:
        country_gdps_list[i].append(country_gdps[i][year] / 1e8)   # 除以 10 的 8 次方,单位为亿

bar = pygal.Bar()      # 创建图(柱状图)

# 添加数据
for i, country_name in enumerate(country_names):
    bar.add(country_name, country_gdps_list[i])

bar.x_labels = x_data
bar.x_label_rotation = 45

bar.title = '各国历年GDP对比图'
bar.x_title = '年份'
bar.y_title = 'GDP(亿)'

bar.legend_at_bottom = True

bar.show_x_guides = True
bar.show_y_guides = False

bar.render_to_file('gdp.svg')

9.4 Python读取各国GDP数据的json文件并用Pygal绘图_第1张图片

你可能感兴趣的:(疯狂python讲义,python,读取json文件,各国GDP数据,Pygal绘图)