python_day7_画图

在这里插入图片描述

json数据与python字典的相互转换

import json

列表,其中每个元素均为一个字典

data = [{"name": "张三", "age": 10},{"name": "李四", "age": 13},{"name": "jay", "age": 17}]

json.dumps()P:将列表转为json,解决中文乱码:ensure_ascii=False

json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
print(f"数据类型为:{type(json_str)}")

在这里插入图片描述

将字典转为json数据

d = {"name": "java", "score": 90}
json_str = json.dumps(d)
print(json_str)
print(type(json_str))

在这里插入图片描述

json.loads():将json转为python数据类型

j_str = '[{"name": "张三", "age": 10}, {"name": "李四", "age": 13}, {"name": "jay", "age": 17}]'
list_j = json.loads(j_str)
print(list_j)
print(type(list_j))j_str = '{"name": "java", "score": 90}'
dict_j = json.loads(j_str)
print(dict_j)
print(type(dict_j))

在这里插入图片描述

画一个简易折线图

在这里插入图片描述

# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts# 创建一个折线图对象
line = Line()
# 给折线图添加X轴数据
line.add_xaxis(['中国', 'USA', '不列颠'])
# 添加Y轴坐标
line.add_yaxis("GDP", [30, 20, 10])# 设置全局配置
line.set_global_opts(title_opts=TitleOpts(title='GDP展示',pos_left="center",pos_bottom="1%"), # 注意此处逗号legend_opts=LegendOpts(is_show=True),toolbox_opts=ToolboxOpts(is_show=True),visualmap_opts=VisualMapOpts(is_show=True)
)# 通过render()方法,将代码生成图像
line.render()

在这里插入图片描述

案例实战

绘制疫情数据折线图

在这里插入图片描述
在这里插入图片描述

json格式化,查看数据层级

在这里插入图片描述

导包

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, LegendOpts, ToolboxOpts, VisualMapOpts

灵活使用print语句查看数据

数据准备

f_us = open("D:/美国.txt", "r", encoding="utf-8")
f_jp = open("D:/日本.txt", "r", encoding="utf-8")
f_in = open("D:/印度.txt", "r", encoding="utf-8")
us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_in.read()

去除不合json规范的开头,也可以使用index(“{”)获取第一个左大括号索引,然后切片

us_data = us_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.strip("jsonp_1629350871167_29498(")
in_data = in_data.strip("jsonp_1629350745930_63180(")

去除不合json规范的结尾

us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]
# print(in_data)
# print(type(in_data))

将json数据转为字典

us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)
# print(in_dict)
# print(type(in_dict))

获取key:trend对应的value

# print(us_dict["data"][0]["trend"]["updateDate"])
us_trend_data = us_dict["data"][0]["trend"]
jp_trend_data = jp_dict["data"][0]["trend"]
in_trend_data = in_dict["data"][0]["trend"]
# print(in_trend_data)
# print(type(in_trend_data))

获取日期数据,作x轴(取2020年)

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(in_x_data)

获取确诊数据,作y轴(取2020年)

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(us_y_data)

制作图表

line = Line()

添加x轴数据

line.add_xaxis(us_x_data)
# line.add_xaxis(jp_x_data)
# line.add_xaxis(in_x_data)

添加y轴数据。注意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_bottom="1%", pos_left="center"),  # 注意此处逗号legend_opts=LegendOpts(is_show=True),toolbox_opts=ToolboxOpts(is_show=True),# visualmap_opts=VisualMapOpts(is_show=False))

通过render()方法,将代码生成图像

line.render()

关闭文件

f_us.close()
f_jp.close()
f_in.close()

效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PS:完整代码

# 处理数据
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, LegendOpts, ToolboxOpts, VisualMapOptsf_us = open("D:/美国.txt", "r", encoding="utf-8")
f_jp = open("D:/日本.txt", "r", encoding="utf-8")
f_in = open("D:/印度.txt", "r", encoding="utf-8")
us_data = f_us.read()
jp_data = f_jp.read()
in_data = f_in.read()# 去除不合json规范的开头,也可以使用index("{")获取第一个左大括号索引,然后切片
us_data = us_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.strip("jsonp_1629350871167_29498(")
in_data = in_data.strip("jsonp_1629350745930_63180(")# 去除不合json规范的结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]
# print(in_data)
# print(type(in_data))# 将json数据转为字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)
# print(in_dict)
# print(type(in_dict))# 获取key:trend对应的value
# print(us_dict["data"][0]["trend"]["updateDate"])
us_trend_data = us_dict["data"][0]["trend"]
jp_trend_data = jp_dict["data"][0]["trend"]
in_trend_data = in_dict["data"][0]["trend"]
# print(in_trend_data)
# print(type(in_trend_data))# 获取日期数据,作x轴(取2020年)
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(in_x_data)# 获取确诊数据,作y轴(取2020年)
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(us_y_data)# 制作图表
line = Line()
# 添加x轴数据
line.add_xaxis(us_x_data)
# line.add_xaxis(jp_x_data)
# line.add_xaxis(in_x_data)
# 添加y轴数据。注意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_bottom="1%", pos_left="center"),  # 注意此处逗号legend_opts=LegendOpts(is_show=True),toolbox_opts=ToolboxOpts(is_show=True),# visualmap_opts=VisualMapOpts(is_show=False))
# 通过render()方法,将代码生成图像
line.render()# 关闭文件
f_us.close()
f_jp.close()
f_in.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28247.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科技云报道:数字化转型完成后,制造业如何走向“数智”时代?

科技云报道原创。 随着我国数字化转型行动的深入推进和智能制造工程的大力实施,制造业正朝着“数智”时代迈进,生成式AI被视为推动制造业智能化发展的关键驱动力。 据预测,到2027年,将有30%的制造业采用生成式AI来提升产品研发效…

汇编实现1-100累加(ARMv7)

汇编实现1-100累加 代码.text .globl _start _start:mov r0,#0 summationmov r1,#0 autoIncrementbl funadd funadd:cmp r1,#100addccs r0,r1,r0addccs r1,r1,#1mov pc,lr stop:b stop .end运行效果

【LangChain】数据连接(Data connection)

概要 许多LLM申请需要特定于用户的数据,这些数据不属于模型训练集的一部分。 LangChain 为您提供了通过以下方式加载、转换、存储和查询数据的构建块: Document loaders : 从许多不同来源加载文档Document transformers:拆分文档…

React native 已有项目升级兼容web

基础 概念 | webpack 中文文档 | webpack 中文文档 | webpack 中文网 深入理解Webpack及Babel的使用 - 掘金 Introduction to React Native for Web // React Native for Web Webpack 是一个现代的 JavaScript 应用程序的静态模块打包工具,它将应用程序所依赖的各…

Docker本地镜像发布到阿里云

我们构建了自己的镜像后,可以发布到远程镜像提供给其他人使用,比如发布到阿里云 使用build/commit生成新的镜像,并生成自己镜像的版本标签tag,此新的镜像在自己的本地库中,使用push可以将镜像提交到阿里云公有库/私有库…

确认应答机制与超时重发机制【TCP原理(笔记一)】

文章目录 通过序列号与确认应答提高可靠性正常的数据传输数据包丢失的情况确认应答丢失的情况发送的数据 重发超时如何确定 通过序列号与确认应答提高可靠性 在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做…

代码随想录算法训练营第十九天 | 动态规划系列5,6,7,8

动态规划系列5,6,7,8 377 组合总和 Ⅳ未看解答自己编写的青春版重点代码随想录的代码我的代码(当天晚上理解后自己编写) 爬楼梯进阶322 零钱兑换未看解答自己编写的青春版写完这道题后的感受重点代码随想录的代码动态规划,也要时刻想着剪枝操作。我的代码(当天晚上理…

通过SSH的方式连接Git仓库

前置条件 git已经安装。 生成公钥私钥 任意调出 git bash 执行: 回车两次,如果已有则需要覆盖确认 Overwrite ssh-keygen -t rsa -C "your_emailexample.com" 生成后的文件路径: C:/user/你的账户/.ssh下,其中 id…

vue写车牌号 自定义键盘

vue写车牌号自定义键盘 <template><div><div class"content-wrapper"><div class"content-top-wrapper"><van-radio-group v-model"radioCarType"><van-radio name"1">蓝牌<imgslot"icon…

超详细VMware虚拟机安装Win10操作系统过程图解

前言 由于某些原因&#xff0c;我需要经常换一些软件的版本。通常&#xff0c;这些软件是相互关联的。这就导致&#xff0c;我需要经常重新卸载一部分软件&#xff0c;然后&#xff0c;安装另一部分软件。甚是麻烦&#xff0c;然后我就想到了虚拟机&#xff0c;直接分配一点内…

Vscode设置忽略文件,忽略node-modules、dist

####看图 files.exclude 设置排除和显示的文件夹 search.exclude 设置搜索时忽略的文件夹

Redis分片集群有什么作用?怎样读取和存储信息

分片集群主要解决的是&#xff0c;海量数据存储的问题&#xff0c;集群中有多个master&#xff0c;每个master保存不同数据&#xff0c;并且还可以给每个master设置多个slave节点&#xff0c;就可以继续增大集群的高并发能力。同时每个master之间通过ping监测彼此健康状态&…