#以下数据均为人造数据,仅供学习
# 第一步:导包
from pyecharts.charts import Line
# 第二步:得到折线图对象
line = Line()
# 第三步:打开数据文件 (数据为JSON格式)
f = open("D://Typora 记事本/notebook/Python/Exercise_data/Japan.txt","r",encoding="UTF-8")
f_AM = open("D://Typora 记事本/notebook/Python/Exercise_data/America.txt","r",encoding="UTF-8")
f_IN = open("D://Typora 记事本/notebook/Python/Exercise_data/India.txt","r",encoding="UTF-8")
data = f.read()
data_AM = f_AM.read()
data_IN = f_IN.read()
# 第四步:根据需求处理数据文件,例如:首尾去掉不需要的内容
data = data.replace("jsonp_1629344292311_69436(","") #首行的旧数据,替换成新数据
data = data[:-2] #切片操作,去除最后两个字符
data_AM = data_AM.replace("jsonp_1629350871167_29498(","")
data_AM = data_AM[:-2]
data_IN = data_IN.replace("jsonp_1629350745930_63180(","")
data_IN = data_IN[:-2]
# 第五步:将JSON数据转Python字典(提前导包)
import json
JN_dict = json.loads(data)
AM_dict = json.loads(data_AM)
IN_dict = json.loads(data_IN)
# 第六步:获取字典中的关键字,例如:trend
trend_dict = JN_dict["data"][0]["trend"]
trend_dict_AM = AM_dict["data"][0]["trend"]
trend_dict_IN = IN_dict["data"][0]["trend"]
第七步:进一步获取数据,生成X轴,Y轴(不显示数字):
from pyecharts.options import LabelOpts
JN_X_data = trend_dict['updateDate'][:314]
JN_Y_data = trend_dict['list'][0]['data'][:314]
AM_X_data = trend_dict_AM['updateDate'][:314]
AM_Y_data = trend_dict_AM['list'][0]['data'][:314]
IN_X_data = trend_dict_IN['updateDate'][:314]
IN_Y_data = trend_dict_IN['list'][0]['data'][:314]
line.add_xaxis(JN_X_data)
line.add_yaxis("日本确诊人数",JN_Y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("美国确诊人数",AM_Y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数",IN_Y_data,label_opts=LabelOpts(is_show=False))
注:数据的获取,取决于字典的结构
# 第八步:设置全局变量(提前导包)
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts
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),
#视觉映射展示
visualmap_opts=VisualMapOpts(is_show=True)
可自行选择添加
'''
)
# 第九步:生成图表
line.render()
# 第十步:关闭文件
f.close()
f_AM.close()
f_IN.close()
效果图: