Python笔记10-数据可视化练习折线图

文章目录

  • JSON数据
  • Python数据和Json数据的相互转化
  • pyecharts模块
  • 构建折线图
  • 全局配置
  • 绘制疫情数据折线图

JSON数据

JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据 。本质上是一个带有特定格式的字符串
主要功能:可以在各个编程语言中流通,负责在不同编程语言中进行数据传递和交互.
JSON示例:

# json数据的格式可以是: 
{"name":"admin","age":18} 
# 也可以是:  
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}] 

Python数据和Json数据的相互转化

# 导入json模块 
import json # 准备符合格式json格式要求的python数据 
data = [{"name": "老王", "age": 16}, {"name": "张三", "age": 20}]# 通过 json.dumps(data) 方法把python数据转化为了 json数据 
data = json.dumps(data) # 通过 json.loads(data) 方法把json数据转化为了 python数据 
data = json.loads(data)

pyecharts模块

Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了。
pyecharts安装
使用在前面学过的pip命令即可快速安装PyEcharts模块
pip install pyecharts
在这里插入图片描述

构建折线图

编写如下代码,并运行

from pyecharts.charts import  Line
line =  Line()
line.add_xaxis(["中国","美国","英国"])
line.add_yaxis("GDP",[30,34,24])
line.render()

会看到源码目录下多了一个html文件
在这里插入图片描述

浏览器打开可以看到折线图
在这里插入图片描述

全局配置

全局配置选项可以通过set_global_opts方法来进行配置, 可以配置:
图表的标题、图例、鼠标移动效果、工具栏等整体配置项

from pyecharts.charts import  Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
line =  Line()
line.add_xaxis(["中国","美国","英国"])
line.add_yaxis("GDP",[30,34,24])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),
)
line.render()

更具体的配置可以参考官网说明

绘制疫情数据折线图

准备三个数据文件,内容如下:
在这里插入图片描述
在这里插入图片描述
编写代码

from pyecharts.charts import  Line
from pyecharts.options import LabelOpts, TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
import json
# 获取文件内容
f_us = open("D:\\works\\pythonworks\\testpro\\美国.txt", "r", encoding="UTF-8")
us_data = f_us.read()   # 美国的全部内容
f_jp = open("D:\\works\\pythonworks\\testpro\\日本.txt", "r", encoding="UTF-8")
jp_data = f_jp.read()
f_in = open("D:\\works\\pythonworks\\testpro\\印度.txt", "r", encoding="UTF-8")
in_data = f_in.read()
# 替换开头的前缀字符串
us_data = us_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
in_data = in_data.replace("jsonp_1629350745930_63180(", "")# 去掉不合JSON规范的结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]print(jp_data)
# JSON转Python字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)# 获取trend key
us_trend_data = us_dict['data'][0]['trend']
jp_trend_data = jp_dict['data'][0]['trend']
in_trend_data = in_dict['data'][0]['trend']# 获取日期数据,用于x轴,取2020年(到314下标结束)
us_x_data = us_trend_data['updateDate'][:314]
jp_x_data = jp_trend_data['updateDate'][:314]
in_x_data = in_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]
in_y_data = in_trend_data['list'][0]['data'][:314]line =  Line()
line.add_xaxis(us_x_data)   # x轴是公用的,所以使用一个国家的数据即可
# 添加y轴数据
line.add_yaxis("美国确诊人数", us_y_data, label_opts=LabelOpts(is_show=False))     # 添加美国的y轴数据
line.add_yaxis("日本确诊人数", jp_y_data, label_opts=LabelOpts(is_show=False))     # 添加日本的y轴数据
line.add_yaxis("印度确诊人数", in_y_data, label_opts=LabelOpts(is_show=False))     # 添加印度的y轴数据# 设置全局选项
line.set_global_opts(# 标题设置title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%")
)
line.render()
# 关闭文件对象
f_us.close()
f_jp.close()
f_in.close()

运行结果如下

在这里插入图片描述

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

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

相关文章

spring data mongo 在事务中,无法自动创建collection

spring data mongo 在事务中,无法自动创建collection org.springframework.dao.DataIntegrityViolationException: Write operation error on server xxx:30001. Write error: WriteError{code=263, message=Cannot create namespace xxx.xxxin multi-document transaction.…

【计算机网络】2、传输介质、通信方向、通信方式、交换方式、IP地址表示、子网划分

文章目录 传输介质双绞线无屏蔽双绞线UTP屏蔽双绞线STP 网线光纤多模光纤MMF单模光纤SMF 无线信道无线电波红外光波 通信方向单工半双工全双工 通信方式异步传输同步传输串行传输并行传输 交换方式电路交换报文交换分组交换 IP地址表示IP地址的定义IP地址的分类无分类编址特殊I…

基于 UniAPP 社区论坛项目多端开发实战

社区论坛项目多端开发实战 基于 UniAPP 社区论坛项目多端开发实战一、项目准备1.1 ThinkSNS 简介及相关文档1.2 使用 UniAPP 构建项目1.3 构建项目文件结构1.4 配置页面 TabBar 导航1.5 使用 npm 引入 uView UI 插件库 二、首页功能实现2.1 首页 header 广告位轮播图功能实现2.…

【占用网络】FlashOcc:基于2D卷积的占用预测模型

前言 FlashOcc是一个它只需2D卷积就能实现“占用预测模型”,具有快速、节约内存、易部署的特点,偏工程方向的工作。 它首先采用2D卷积提取图形信息,生成BEV特征。然后通过通道到高度变换,将BEV特征提升到3D空间特征。 对于常规…

C#,入门教程(20)——列表(List)的基础知识

上一篇: C#,入门教程(19)——循环语句(for,while,foreach)的基础知识https://blog.csdn.net/beijinghorn/article/details/124060844 List顾名思义就是数据列表,区别于数据数组(arr…

分析Unity崩溃日志(Android)

Unity版本: 这里Unity版本是Unity 2019.4.30f1 崩溃信息: 错误信息如下: Exception Appversion: versionName 1.0.1 versionCode 1 Process: sg.atla.f.c PID: 22716 UID: 10749 Flags: 0x3088be44 Package: sg.atla.f.c v1 (1.0.1) Fo…

CentOS安装Flume

CentOS安装Flume 一、简介二、安装1、下载2、解压3、创建配置文件4、启动flume agent5、验证 一、简介 Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexi…

Java多线程知识汇总(二)

目录 一、Java多线程1、进程与线程2、并行与并发二、线程的礼让三、线程的优先级四、守护线程五、线程的阻塞 六、线程的打断 七、线程的相关方法总结同步锁线程安全synchronized线程通信waitnotify 一、Java多线程 1、进程与线程 进程 当一个程序被运行,就开启…

SQL性能分析

SQL性能分析 1、SQL执行频率 ​ MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信 息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次: -- session 是查看当前会话 ; …

《游戏-02_2D-开发》

基于《游戏-01_2D-开发》, 继续制作游戏: 首先给人物添加一个2D重力效果 在编辑的项目设置中, 可以看出unity默认给的2D重力数值是-9.81,模拟现实社会中的重力效果 下方可以设置帧率 而Gravity Scale代表 这个数值会 * 重力 还…

erlang (OS 操作模块)学习笔记

cmd: env: 返回所有环境变量的列表。 每个环境变量都表示为元组 {VarName,Value},其中 VarName 是 变量和 Value 其值。 例: {VarName,Value} {"ERLANG_HOME","C:\\Program Files\\erl-24.3.4.2\\bin\\erl-24.3.4.2"}…

Linux多线程——互斥锁

本质Gitee仓库:互斥锁、锁封装 文章目录 1. 线程互斥2. 互斥锁2.1 锁的初始化与释放2.2 加锁与解锁 3. 锁的原理4. 锁的封装5. 线程安全与可重入函数 1. 线程互斥 一个共享资源在被多个线程并发访问的时候,可能会出现一个线程正在访问,而另一个线程又来…

Elasticsearch 分布式架构剖析及扩展性优化

1. 背景 Elasticsearch 是一个实时的分布式搜索分析引擎,简称 ES。一个集群由多个节点组成,节点的角色可以根据用户的使用场景自由配置,集群可以以节点为单位自由扩缩容,数据以索引、分片的形式散列在各个节点上。本文介绍 ES 分布…

交叉编译工具 aarch64-linux-gnu-gcc 的介绍与安装

AArch64 是随 ARMv8 ISA 一起引入的 64 位架构,用于执行 A64 指令的计算机。而且在 AArch64 状态下执行的代码只能使用 A64 指令集。,而不能执行 A32 或 T32 指令。但是,与 AArch32 中不同,在64位状态下,指令可以访问 …

离线数据仓库-关于增量和全量

数据同步策略 数据仓库同步策略概述一、数据的全量同步二、数据的增量同步三、数据同步策略的选择 数据仓库同步策略概述 应用系统所产生的业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后…

十八周周报

文章目录 摘要文献阅读3D reconstruction of human bodies from single-view and multi-view images: A systematic review简介研究方法搜索策略选择标准搜索结果 三维重建方法单个视图中使用的技术基于参数化人体模型的回归基于非参数人体模型的回归 多个视图中使用的技术基于…

傲空间私有部署Windows指南

推荐阅读 智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) 安装 docker 请下载对应的 Docker,安装完成后启动。 Docker Desktop for Windows…

【论文笔记】Fully Sparse 3D Panoptic Occupancy Prediction

原文链接:https://arxiv.org/abs/2312.17118 1. 引言 现有的3D占用预测方法建立密集的3D特征,没有考虑场景的稀疏性,因此难以满足实时要求。此外,这些方法仅关注语义占用,无法区分实例。 本文认为场景的稀疏性包含两…

使用Sqoop从Oracle数据库导入数据

在大数据领域,将数据从关系型数据库(如Oracle)导入到Hadoop生态系统是一项常见的任务。Sqoop是一个强大的工具,可以帮助轻松完成这项任务。本文将提供详细的指南,以及丰富的示例代码,帮助了解如何使用Sqoop…

java:流程控制

一、流程控制语句分类 顺序结构分支结构(if,switch)循环结构(for,while,do...while) 二、顺序结构 定义:顺序结构是程序中最基本的流程控制,没有特定的语法结构&#…