当前位置: 首页 > news >正文

Python数据可视化案例——折线图

目录

json介绍:

Pyecharts介绍

安装pyecharts包 

构建一个基础的折线图

配置全局配置项

综合案例:

使用工具对数据进行查看 :

数据处理


json介绍:

  json是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据。不同语言格式之间通过json进行转化,json本质上为字符串。

 下面演示使用json进行数据格式的转化。

  python转为json使用json的dumps方法。

代码演示:

import json
# python转为json
# 列表转化
data =[{"name":"张三","age":12},{"name":"王五","age":13},{"name":"李四","age":14}]
json_str1=json.dumps(data,ensure_ascii= False) # ensure_ascii= false,让中文内容直接输出不转换为码
print(type(json_str1))
print(json_str1)# 字典转化
d={'name':'李四','age':12}
json_str2=json.dumps(d,ensure_ascii= False)
print(type(json_str2))
print(json_str2)

运行结果: 

 反过来,json转为python使用json的loads方法。  

代码演示:

data ='[{"name":"张三","age":12},{"name":"王五","age":13},{"name":"李四","age":14}]'
list1=json.loads(data)
print(type(list1))
print(list1)

运行结果:

Pyecharts介绍

  Pyecharts是一个基于Python的开源数据可视化库,它用于创建交互式的图表和图形。Pyecharts可以生成各种类型的图表,包括折线图、柱状图、散点图、饼图等。它提供了丰富的图表样式和配置选项,使用户能够自定义图表的外观和行为。

 打开pyecharts查看官方示例。 

安装pyecharts包 

构建一个基础的折线图

代码:

from pyecharts.charts import Lineline = Line()
# 添加x轴数据
line.add_xaxis(['中国','美国','日本'])
# 添加y轴数据
line.add_yaxis('GDP',[30,20,10])
# 查看图像
line.render()

 运行代码会发现出现一个html结尾的网页文件。

选择一个浏览器打开 。

效果如下图。

配置全局配置项

  通过导入包的更多功能添加一些更多的属性. 

from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts# 引入标题line = Line()
# 添加x轴数据
line.add_xaxis(['中国','美国','日本'])
# 添加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),
)
# 查看图像
line.render()

效果图: 

综合案例:

  生成2022年美日印新冠疫情确诊人数折线对比图。

使用工具对数据进行查看 :

  准备好的文件中的json数据如下:

  在abc173网站中对该json数据格式化,直观看出层次结构(点击json视图工具)。

数据处理:

  我们需要获取json数据中的2020年的日期作为x轴,该年的确诊人数作为y轴。

美国数据处理的代码演示:

# 读取json文件
f_us =open('D:/美国.txt','r',encoding='UTF-8')
us_data=f_us.read()
# 去掉开头和结尾不规范字符
us_data=us_data.replace('jsonp_1629344292311_69436(','')
us_data=us_data[:-2]# json转python字典
us_dict=json.loads(us_data)# 获取trend key
us_trend=us_dict['data'][0]['trend']# 获取日期数据,用于x轴,取2020年
us_x_data=us_trend['updateDate'][:314]
# 验证 print(us_x_data)# 获取确诊人数数据,用于y轴,取2020年
us_y_data=us_trend['list'][0]['data'][:314]
# 验证 print(us_y_data)

   同样的对日本和印度的json数据进行相应的处理。

import jsonfrom pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts# 引入标题# 读取json文件
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=us_dict['data'][0]['trend']
jp_trend=jp_dict['data'][0]['trend']
in_trend=in_dict['data'][0]['trend']# 获取日期数据,用于x轴,取2020年
us_x_data=us_trend['updateDate'][:314]
jp_x_data=jp_trend['updateDate'][:314]
in_x_data=in_trend['updateDate'][:314]# 获取确诊人数数据,用于y轴,取2020年
us_y_data=us_trend['list'][0]['data'][:314]
jp_y_data=jp_trend['list'][0]['data'][:314]
in_y_data=in_trend['list'][0]['data'][:314]# 生成图表
line=Line()line.add_xaxis(us_x_data) # x轴数据共用
line.add_yaxis("美国确诊人数",us_y_data)
line.add_yaxis("日本确诊人数",jp_y_data)
line.add_yaxis("印度确诊人数",in_y_data)# 设置标题,注意标题一定在全局属性中设置
line.set_global_opts(title_opts=TitleOpts(title='2022年美日印新冠疫情确诊人数对比图',pos_left='center',pos_bottom='1%' 
))# 查看图像
line.render()# 关闭文件
f_us.close()
f_jp.close()
f_in.close()

运行代码得到下图 。

我们可以看到当前图线的数字太多不太美观,通过设置系列属性来去掉混合数字,ctrl+p查看所有功能找到label_opts。

# 修改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))

可以看到数字消失了,图表清爽了很多。 

  以上内容仅是对 JSON 数据格式转化以及 Pyecharts 库使用的简单演示。希望这样的分享能给您带来帮助,也期待能获得您的投币点赞支持,感谢!

相关文章:

Python数据可视化案例——折线图

目录 json介绍: Pyecharts介绍 安装pyecharts包 构建一个基础的折线图 配置全局配置项 综合案例: 使用工具对数据进行查看 : 数据处理 json介绍: json是一种轻量级的数据交互格式,采用完全独立于编程语言的文…...

Ubuntu虚拟机安装及汉化

一、安装 1.勾选典型(推荐)(T)——点击下一步 2.点击浏览找到光盘映像文件打开(此文件很重要安装好后安装包不要卸载,放在不容易被删除的地方)——点击下一步 3.将信息补充完整——点击下一步 4.点击浏览选择要将虚拟机安装在哪个路径&…...

记2024-08原生微信小程序开发

继2024.08 最近需要开发一个微信小程序的一个功能模块,但是之前在学的时候都是好几年前的东东了,然后重新快速过了一遍b站大学的教程,这篇文章就是基于教程进行的一些总结,和自己开发过程当中使用到的一些点和一些技巧什么的吧。 …...

嵌入式linux系统镜像制作day1

点击上方"蓝字"关注我们 01、前言 嵌入式设备(例如心电图检测仪,售票系统等)。尽管,嵌入式设备像那些智能手机一样,绝大多数都使用同样的硬件和软件,包括系统芯片SoC、储存、连接和多媒体接口、…...

【相机与图像】2. 相机内外参的标定的代码示例

1 摄像头内参的标定 【相机标定具体操作】 使用将要标定的摄像头,以不同的角度采集棋盘格,要保证视野内出现完整的棋盘格。采集图片数量约15张左右即可。 以11*8的棋盘格为例,具体流程如下: step 1. 设置棋盘格3D点;通…...

重启人生计划-拒绝内耗

🥳🥳🥳 茫茫人海千千万万,感谢这一刻你看到了我的文章,感谢观赏,大家好呀,我是最爱吃鱼罐头,大家可以叫鱼罐头呦~🥳🥳🥳 如果你觉得这个【重启人生…...

盘点电脑开机慢的几大高频原因

常规的话一台电脑正常我们都要用个2年以上的时间,有的可能更长,5年的都有,而电脑目前占多数的主流操作系统就是微软的Windows。那么随着使用年限的增加,无论是系统还是电脑硬件,都会随着使用次数和使用的时间的增加而有损耗,系统软件上就是文件越来越臃肿,空间越来越小,…...

2-64 基于matlab的Consensus-Based Bundle Algorithm (CBBA)算法

基于matlab的Consensus-Based Bundle Algorithm (CBBA)算法,可为异构代理网络上的多代理多任务分配问题提供良好的解决方案。支持具有有效时间窗口的任务、异构代理-任务兼容性要求,以及平衡任务奖励和燃料成本的得分函数。奖励和燃料成本的分数函数。程…...

Win10 去掉桌面右上角 了解有关此图片的信息

1. 进入注册表 Win R运行regedit 2. 找到以下路径 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel 3. 新建 DWORD(32位)值(D) 右击 NewStartPanel新建 DWORD…...

tcpdump入门——抓取三次握手数据包

1. 使用docker启动一个tcp应用 参考:https://blog.csdn.net/LONG_Yi_1994/article/details/141175526 2. 获取容器id docker ps |grep gochat 3. 获取容器的 PID 首先,你需要获得容器的进程 ID(PID)。可以使用 docker inspect…...

漏洞复现-GitLab任意读取文件(CVE-2023-2825)

1.漏洞描述 GitLab是一个用于仓库管理系统的开源项目,其使用Git作为代码管理工具,可通过Web界面访问公开或私人项目。据悉,该漏洞影响 GitLab社区版(CE)和企业版(EE)的 16.0.0 版本,其它更早的版本几乎都不受影响。 该漏洞存在于GitLab CE/EE版本16.0.0…...

二叉树——9.找树左下角的值

力扣题目链接 给定一个二叉树,在树的最后一行找到最左边的值。 示例: 输出:7 题干很简单,找到树的最后一行,在该行找到最左边的值,结合完整代码进行分析。 完整代码如下: class Solution:d…...

如何用github制作个人网站

这里整理了一些参考资料。总结来说,如果系统学过html网页制作的话,可以不用看这篇博客了;这里适合于小白,就是那种 没有做过网页、打算以别人优秀的个人主页为框架做网页的小白。 一、简单说明 这是利用github.io来制作网页的&a…...

二.PhotoKit - 相册权限(彻底读懂权限管理)

引言 用户的照片和视频算是用户最私密的数据之一,由于内置的隐私保护功能,APP只有在用户明确授权的前提下才能访问用户的照片库。从iOS14 开始,PhotoKit进一步增强了用户的隐私控制,用户可以选择指定的照片或者视频资源的访问权限…...

二叉树------最小堆,最大堆。

什么是最小堆: 堆是一种二叉树,最小堆中所有父亲节点的值都要比自己的子节点的值要小。而根节点称为堆顶。根据定义我们可以得到堆中最小元素就在堆顶。(节点左上角是编号,内部是元素值) 假设该图中的堆顶元素是24呢&a…...

预约功能的知识整理

前置知识 如果项目为小程序的开发项目中: 我们确定数据库中有的字段有: 预约人姓名、手机号、家人名称、预约时间 根据我们的经定一表必须要有的6个字段: 主键、创建时间、修改时间、创建人、修改人、备注 使用我们现在有的字段为: 主键…...

Linux的常用操作-02

一:Linux的系统目录结构 /bin bin是ary的缩写,这个目录存放着最经常用的命令 /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev:dev是Device(设备)的缩写,该目录下存放的是Lin…...

Android Studio 连接手机进行调试

总所周知,Android Studio里的虚拟手机下载后又大又难用。不如直接连手机用。本篇文章主要内容为Android Studio怎么连接手机进行程序调试。 1. 在AndroidSDK中下载google USB Driver: 2. 连接手机: 进入电脑设备管理器界面。并点开便携设备&#xff0c…...

Vue3项目创建及相关配置

Vue是一种用于构建用户界面的JavaScript框架。它采用了一种称为MVVM(Model-View-ViewModel)的架构模式。 MVVM是一种将用户界面与业务逻辑和数据分离的设计模式。它包括三个部分: Model(模型):表示应用程序…...

【Python】Python中一些有趣的用法

Python是一种非常灵活和强大的编程语言,它有很多有趣的用法,以下是一些例子: 一行代码实现FizzBuzz: print(\n.join([FizzBuzz[i%3*4:i%5*8:-1] or str(i) for i in range(1, 101)]))使用列表推导式生成斐波那契数列: …...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...