赞
踩
成果图
代码如下:
从文件中读取数据,并通过http://www.ab173.com/来可视化数据
注意数据要从json转为字典
import json from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, LabelOpts from pyecharts.charts import Line # 处理数据 f_us = open("D:/美国.txt", "r", encoding="UTF-8") us_data = f_us.read() f_jp = open("D:/日本.txt", "r", encoding="UTF-8") jp_data = f_jp.read() f_in = open("D:/印度.txt", "r", encoding="UTF-8") in_data = f_in.read() # 去掉文件中不合理的数据 us_data = us_data.replace("jsonp_1629344292311_69436(", "") us_data = us_data[:-2] jp_data = jp_data.replace("jsonp_1629350871167_29498(", "") jp_data = jp_data[:-2] in_data = in_data.replace("jsonp_1629350745930_63180(", "") in_data = in_data[:-2] # 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轴,取2020年(到315下标) us_x_data = us_trend_data['updateDate'][0:314] jp_x_data = jp_trend_data['updateDate'][0:314] in_x_data = in_trend_data['updateDate'][0:314] # 获取y轴数据,取2020年(到315下标结束 us_y_data = us_trend_data['list'][0]['data'][0:314] jp_y_data = jp_trend_data['list'][0]['data'][0:314] in_y_data = in_trend_data['list'][0]['data'][0:314] # 生成图表 line = Line() # 构建折线图对象 # 添加x轴数据 line.add_xaxis(us_x_data) # x轴公用,故添加一个国家即可 # 添加y轴数据 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)) # 设置全局选项 line.set_global_opts( # 标题设置 title_opts=TitleOpts(title="美印日2020疫情感染人数", pos_left="center", pos_bottom="1%"), # 图例设置 legend_opts=LegendOpts(is_show=True), # 工具箱设置 toolbox_opts=ToolboxOpts(is_show=True), ) line.render() f_us.close() f_in.close() f_jp.close()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。