#处理数据
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts
fus=open("J:/data/美国.txt","r",encoding="UTF-8")
us_data=fus.read()
fjp=open("J:/data/日本.txt","r",encoding="UTF-8")
jp_data=fjp.read()
fin=open("J:/data/印度.txt","r",encoding="UTF-8")
in_data=fin.read()
#去掉json不合规范的开头
us_data=us_data.replace("jsonp_1629344292311_69436(","")
jp_data=jp_data.replace("jsonp_1629350871167_29498(","")
in_data=in_data.replace("jsonp_1629350745930_63180(","")
#去掉不和规范的结尾
us_data=us_data.replace(");","")
jp_data=jp_data.replace(");","")
in_data=in_data.replace(");","")
#json转python字典
us_dict=json.loads(us_data)
jp_dict=json.loads(jp_data)
in_dict=json.loads(in_data)
#获取trend key
us_trend_data=us_dict['data'][0]['trend']
jp_trend_data=jp_dict['data'][0]['trend']
in_trend_data=in_dict['data'][0]['trend']
#获取日期数据,x轴
us_x_data=us_trend_data['updateDate'][:314]
jp_x_data=jp_trend_data['updateDate'][:314]
in_x_data=in_trend_data['updateDate'][:314]
# print(x_data)
#获取确认数据,Y轴
us_y_data=us_trend_data['list'][0]['data'][:314]
jp_y_data=jp_trend_data['list'][0]['data'][:314]
in_y_data=in_trend_data['list'][0]['data'][:314]
#print(y_data)
#生成图表
line=Line()
line.add_xaxis(us_x_data)
line.add_yaxis("美国确诊人数",us_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数",in_y_data,label_opts=LabelOpts(is_show=False))#label_opts是否显示图里的数字
#设置全局选项
line.set_global_opts(
title_opts=TitleOpts("2020年美日印三国确诊人数对比折线图",pos_left="center",pos_bottom="1%"),
)
line.render()
#关闭文件对象
fus.close()
fjp.close()
fin.close()
生成疫情数据折线图
最新推荐文章于 2024-11-02 16:28:26 发布
该代码片段展示了如何读取三个不同国家(美国、日本和印度)的COVID-19疫情数据,从JSON格式的文本文件中提取数据,然后利用PyEcharts库创建一个折线图,对比这三个国家的累计确诊病例数。代码首先处理JSON数据的格式问题,然后将数据转换为Python字典,最后绘制出折线图并显示标题。
摘要由CSDN通过智能技术生成