案例描述
根据可参考数据,实现对疫情确诊人数数据的可视化。
利用json转换工具,将数据格式化,需要取出下面两部分的内容。
可视化效果图:
实现步骤
一、导入模块
导入可能用到的模块
import json
from pyecharts.charts import Line
二、读取文件内容
打开相应的文件,使用变量us_data保存文件的内容
f_us = open("D:/美国.txt","r",encoding="UTF-8")
us_data = f_us.read()
去掉不符合json规范的开头
json文件是一个单独的字典或一个内部元素都是字典的列表。
所以文件内容是字典或列表的格式。
us_data = us_data.replace("jsonp_1629344292311_69436(","")
去掉不符合json规范的结尾
使用切片截取除了最后两个字符的其他字符。
us_data = us_data[:-2]
三、json转换python
将json文件内容转换为python,即字符串转换为字典。
us_dict = json.loads(us_data)
四、获取需要用到的数据
获取字典中用于x、y轴的数据。
# 获取trend key
trend_data = us_dict['data'][0]['trend']
# 获取日期数据,取2020一年的数据,到314下标结束
x_data = trend_data['updateDate'][:314]
# 获取确诊数据
y_data = trend_data['list'][0]['data'][:314]
五、生成图表
构建对象
line = Line()
添加x、y轴数据
line.add_xaxis(x_data)
line.add_yaxis("美国确诊人数",y_data)
如果不想折线图上显示数字数据可以这样写
line.add_yaxis("美国确诊人数",y_data,label_opts=LabelOpts(is_show=False))
设置全局选项
# 先导入需要用到的模块
from pyecharts.options import TitleOpts
# 设置
line.set_global_opts(
title_opts=TitleOpts(title="2020年美国确诊人数折线图",pos_left="center",pos_bottom="1%")
)
调用render方法,生成图表
line.render()
六、关闭文件
在打开文件,使用完文件后,一定记得关闭文件。
f_us.close()
运行后打开render.html文件就可以了。