首页 > 编程语言 >python的折线图实现的具体案例

python的折线图实现的具体案例

时间:2023-02-13 18:34:43浏览次数:46  
标签:python jp us 314 案例 折线图 trend data id

#导入包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,ToolboxOpts,LegendOpts,VisualMapOpts,LabelOpts
import json
#处理数据
f_us = open("D:/美国.txt","r",encoding="UTF-8")
f_jp = open("D:/日本.txt","r",encoding="UTF-8")
f_id = open("D:/印度.txt","r",encoding="UTF-8")

us_data=f_us.read()
jp_data=f_jp.read()
id_data=f_id.read()
#去掉不合理的json开头
us_data = us_data.replace("jsonp_1629344292311_69436(","")
jp_data = jp_data.replace("jsonp_1629350871167_29498(","")
id_data = id_data.replace("jsonp_1629350745930_63180(","")
#去掉结尾不合理的json数据,因为结尾的数据是);,还用替换的方法的话可能会造成错误,因此,选择用切片的方式
us_data = us_data[:-2]
jp_data = jp_data[:-2]
id_data = id_data[:-2]
#json转python字典
us_dic =json.loads(us_data)
jp_dic =json.loads(jp_data)
id_dic =json.loads(id_data)
#获trend key
us_trend_data = us_dic["data"][0]["trend"]
jp_trend_data = jp_dic["data"][0]["trend"]
id_trend_data = id_dic["data"][0]["trend"]
#获取日期数据,用于x轴,取2020年到(314下标结束)
us_x_data = us_trend_data["updateDate"][:314]
jp_x_data = jp_trend_data["updateDate"][:314]
id_x_data = id_trend_data["updateDate"][:314]
#获取确认数据,用于y轴,取2020年(314)
us_y_data = us_trend_data["list"][0]["data"][:314]
jp_y_data = jp_trend_data["list"][0]["data"][:314]
id_y_data = id_trend_data["list"][0]["data"][:314]

#画图
#创建一个折线图像对象,即创建一个空的坐标系
line =Line()
#给折线图对象添加x轴的数据
line.add_xaxis(us_x_data)
#给折线图添加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("印度确诊人数",id_y_data,label_opts=LabelOpts(is_show=False))

#设置全局配置项 set_global_option来设置
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()


完结,撒花,Keep going!

标签:python,jp,us,314,案例,折线图,trend,data,id
From: https://blog.51cto.com/u_15760583/6054575

相关文章