pyecharts折线图的无脑记录
在进行文章写作时,难免会放入一些折线图,所以学习了pyecharts绘图,以便下次使用
使用的数据
学习测试所使用的数据为:
其中,以美国.txt为例,美国.txt里面的内容为:
由于json实质上是字符串,在转化为python数据(字典或者列表)时,需要将无用的信息删除。比如美国.txt中有两处可以删除:
删除美国.txt中的无用信息
1.手动删除
2.采用字符串中的替换和切片操作进行删除
a=a.replace('jsonp_1629344292311_69436(','')#采用替换方法将【jsonp_1629344292311_69436(】替换为'',将【jsonp_1629344292311_69436(】删除
a=a[:-2]#切片操作,删除尾部的【);】,采用了倒序切片
json转换为python数据
a=json.loads(a)
获取折线图中x,y轴所需要的数据
获取updatedata中的数据,和list中的数据(字典获取方法)
us_x_data=a['data'][0]['trend']['updateDate'][:314]
us_y_data=a['data'][0]['trend']['list'][0]['data'][:314]
jp_x_data=b['data'][0]['trend']['updateDate'][:314]
jp_y_data=b['data'][0]['trend']['list'][0]['data'][:314]
yd_x_data=c['data'][0]['trend']['updateDate'][:314]
yd_y_data=c['data'][0]['trend']['list'][0]['data'][:314]
完整代码`
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts,LegendOpts,ToolboxOpts,VisualMapOpts
f=open(r"C:\Users\Administrator\Desktop\1\美国.txt",'r',encoding='UTF-8')#导入文件对象
ff=open(r"C:\Users\Administrator\Desktop\1\日本.txt",'r',encoding='UTF-8')
fff=open(r"C:\Users\Administrator\Desktop\1\印度.txt",'r',encoding='UTF-8')
a=f.read()
b=ff.read()
c=fff.read()
a=a.replace('jsonp_1629344292311_69436(','')#replace将jsonp_1629344292311_69436(替换为空,删除
a=a[:-2]#切片操作,删除不要的元素,倒序
a=json.loads(a)
b=b.replace('jsonp_1629350871167_29498(','')
b=b[:-2]
b=json.loads(b)
c=c.replace('jsonp_1629350745930_63180(','')
c=c[:-2]
c=json.loads(c)
#获取到y,x轴所需的数据
us_x_data=a['data'][0]['trend']['updateDate'][:314]
us_y_data=a['data'][0]['trend']['list'][0]['data'][:314]
jp_x_data=b['data'][0]['trend']['updateDate'][:314]
jp_y_data=b['data'][0]['trend']['list'][0]['data'][:314]
yd_x_data=c['data'][0]['trend']['updateDate'][:314]
yd_y_data=c['data'][0]['trend']['list'][0]['data'][:314]
line=Line()#创建空折线图
line.add_xaxis(us_x_data)#x轴添加数据
line.add_yaxis('美国感染人数',us_y_data,label_opts=LabelOpts(is_show=False))#y轴添加数据,label_opts=LabelOpts(is_show=False)将图中数据隐藏
line.add_yaxis('日本感染人数',jp_y_data,label_opts=LabelOpts(is_show=False))
line.add_yaxis('印度感染人数',yd_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),
)
line.render()
f.close()
ff.close()
fff.close()
效果图
记录
ab173.com可以用来查看json数据格式等(json相关-json视图)