Python数据可视化-折线图
Python数据可视化-折线图
一、JSON数据格式
1.1 什么是json
- JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据
- JSON本质上是一个带有特定格式的字符串
主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互
1.2 json有什么用
各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。
1.3 json格式数据转化
# json数据的格式可以是:
{"name":"admin","age":18}
# 也可以是:
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}]
1.4 Python数据和Json数据的相互转化
# 导入json模块
import json
# 准备符合格式json格式要求的python数据
data = {{"name":"老王", "age":16},{"name":"张飒","age":24}}
# 通过json.dumps(data)方法把python数据转化为了json数据
data = json.dumps(data)
# 通过json.loads(data)方法把json数据转化为了python数据
data = json.loads(data)
1.5 总结

二、pyecharts模块介绍
3.1 pyecharts模块
概况:
Echarts是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图标设计,得到了众多开发者的认可,而python是富有表达力的语言,很适合用于数据处理,当数据分析遇到数据可视化时pyecharts就诞生了。
pyecharts模块安装:
pip命令即可快速安装PyEcharts模块
pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple
3.2 总结

三、pyecharts快速入门
3.1 pyecharts入门
基础折线图
"""
演示pyecharts的基础入门
"""
# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
# 创建一个折线图对象
line = Line()
# 给折线图对象添加x轴的数据
line.add_xaxis(["中国", "美国", "日本"])
# 给折线图对象添加y轴的数据
line.add_yaxis("GDP", [30, 20, 10])
# 设置全局配置项set_global_opts来设置,
line.set_global_opts(
# pos_bottom: title 组件离容器下侧的距离。bottom的值可以是像 20 这样的具体像素值
# 可以是像 '20%' 这样相对于容器高宽的百分比。
title_opts=TitleOpts(title="GDP展示", pos_left="center", pos_bottom="1%"),
legend_opts=LegendOpts(is_show=True), # 图例,默认就是True
toolbox_opts=ToolboxOpts(is_show=True), # 工具箱
visualmap_opts=VisualMapOpts(is_show=True) # 视觉映射
)
# 通过render方法,将代码生成为图像
line.render()
效果:

3.2 pyecharts的配置选项
- 全局配置选项
- 系列配置选项
set_global_opts方法
这里全局配置选项可以通过set_global_opts方法来进行配置,相应的选项和选项的功能如下:

3.3 总结

四、数据处理
导入模块:
# 导入json模块
import json
对数据进行处理,让数据符合json格式:
# 把不符合json数据格式的 "jsonp_1629350871167_29498(" 去掉
data = data.replace("jsonp_1629350871167_29498(", "")
# 把不符合json数据格式的 ");" 去掉
data = data[:-2]
# 数据格式符合json格式后,对数据进行转化
data = json.loads(data)
# 获取日本的疫情数据
data = data["data"][0]['trend’]
# x1_data存放日期数据
x1_data = data['updateDate’]
# y1_data存放人数数据
y1_data = data['list'][0]["data"]
# 获取2020年的数据
x1_data = data['updateDate'][:314]
# 获取2020年的数据
y1_data = data['list'][0]["data"][:314]
五、创建折线图
"""
演示可视化需求1:折线图开发
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts
# 处理数据
f_us = open("美国.txt", "r", encoding="UTF-8")
f_india = open("印度.txt", "r", encoding="UTF-8")
f_japan = open("日本.txt", "r", encoding="UTF-8")
us_data = f_us.read()
india_data = f_india.read()
japan_data = f_japan.read()
# 去掉不合json规范的开头
us_data = us_data.replace("jsonp_1629344292311_69436(", "")
india_data = india_data.replace("jsonp_1629350745930_63180(", "")
japan_data = japan_data.replace("jsonp_1629350871167_29498(", "")
# 去掉不合json规范的结尾
us_data = us_data[:-2]
india_data = india_data[:-2]
japan_data = japan_data[:-2]
# json转python字典
us_dict = json.loads(us_data)
india_dict = json.loads(india_data)
japan_dict = json.loads(japan_data)
# 获取trend key
us_trend_data = us_dict['data'][0]['trend']
india_trend_data = india_dict['data'][0]['trend']
japan_trend_data = japan_dict['data'][0]['trend']
# 获取日期数据,用于x轴,取2020年(到314下标结束)
us_x_data = us_trend_data['updateDate'][:314]
india_x_data = india_trend_data['updateDate'][:314]
japan_x_data = japan_trend_data['updateDate'][:314]
# 获取确诊数据,用于y轴,取2020年(到314下标结束)
us_y_data = us_trend_data['list'][0]['data'][:314]
india_y_data = india_trend_data['list'][0]['data'][:314]
japan_y_data = japan_trend_data['list'][0]['data'][:314]
# 生成图表
line = Line() # 构建折线图对象
# 添加x轴数据
line.add_xaxis(us_x_data) # x轴是公用的,所以使用一个国家的数据即可
# 添加y轴数据
line.add_yaxis("美国确诊人数", us_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数", india_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数", japan_y_data, label_opts=LabelOpts(is_show=False))
# 设置全局选项
line.set_global_opts(
# 标题设置
title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%")
)
# 调用render方法,生成图表
line.render()
# 关闭文件对象
f_us.close()
实现效果如下:

Python数据可视化-折线图的更多相关文章
- g2蚂蚁数据可视化折线图,点位坐标label 图形文本设置
应用g2可视化插件画了个粉丝分析图 要求显示如图所见的节点参数,查看文档蚂蚁图形文本设置,得知需要引入如下代码: chart.point().position('update*praises').la ...
- 【数据科学】Python数据可视化概述
注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...
- python --数据可视化(一)
python --数据可视化 一.python -- pyecharts库的使用 pyecharts--> 生成Echarts图标的类库 1.安装: pip install pyecharts ...
- 【python可视化系列】python数据可视化利器--pyecharts
学可视化就跟学弹吉他一样,刚开始你会觉得自己弹出来的是噪音,也就有了在使用python可视化的时候,总说,我擦,为啥别人画的图那么溜: [python可视化系列]python数据可视化利器--pyec ...
- python数据可视化:pyecharts
发现了一个做数据可视化非常好的库:pyecharts.非常便捷好用,大力推荐!! 官方介绍:pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 ...
- Python数据可视化——使用Matplotlib创建散点图
Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...
- Python数据可视化-seaborn库之countplot
在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效. seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是s ...
- Python数据可视化的四种简易方法
摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...
- python 数据可视化
一.基本用法 import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1,1,50) # 生成-1到1 ,平分50个点 ...
- python -- 数据可视化(二)
python -- 数据可视化 一.Matplotlib 绘图 1.图形对象(图形窗口) mp.figure(窗口名称, figsize=窗口大小, dpi=分辨率, facecolor=颜色) 如果 ...
随机推荐
- 深度学习02-03(图像处理、OpenCV实验案例)
OpenCV实验案例 文章目录 OpenCV实验案例 一.OpenCV安装 1. OpenCV介绍 2. 安装 二.OpenCV基本操作 1. 图像读取与保存 1)读取.图像.保存图像 2. 图像色彩 ...
- [Pytorch框架] 3.1 logistic回归实战
文章目录 3.1 logistic回归实战 3.1.1 logistic回归介绍 3.1.2 UCI German Credit 数据集 3.2 代码实战 import torch import to ...
- Netty之数据解码
一.概况 作为Java世界使用最广泛的网络通信框架Netty,其性能和效率是有目共睹的,好多大公司都在使用如苹果.谷歌.Facebook.Twitter.阿里巴巴等,所以不仅仅是因为Netty有高效的 ...
- 2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。
2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP. 答案2023-02-25: 使用 github.com/ ...
- 2021-05-03:给定一个非负整数num, 如何不用循环语句, 返回>=num,并且离num最近的,2的某次方 。
2021-05-03:给定一个非负整数num, 如何不用循环语句, 返回>=num,并且离num最近的,2的某次方 . 福大大 答案2021-05-03: 32位整数,N=32. 1.非负整数用 ...
- .NET周报 【5月第2期 2023-05-14】
国内文章 XUnit数据共享与并行测试 https://www.cnblogs.com/podolski/p/17388602.html 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一 ...
- Go开源世界主流成熟ORM框架gorm实践分享
@ 目录 概述 定义 核心功能 声明模型与约定 gorm.Model 字段级权限 时间惯例 嵌入结构 字段标签 使用 安装 数据库链接 连接池 CRUD 接口 创建 查询 高级查询 修改 删除 原始S ...
- 小程序 Page "pages/posts/post-detail/post-detail" has not been registered yet.
今使用wx.navigateTo进行页面跳转老是提示Page "pages/posts/post-detail/post-detail" has not been register ...
- 7-9 《Fibonacci 数列》
7-9 <Fibonacci 数列> 思路:吃过前面<序列求和>问题的亏 但还是要尝试一下循环大法 Fn=Fn-1+Fn-2 定义int型 aFn-1 , bFn-2 , cF ...
- 逍遥自在学C语言 | 宏定义技巧让你的C代码快人一步
前言 在C语言中,宏定义是一种预处理指令,用于在代码中定义和使用常量.函数或代码片段的替代. 宏定义使用#define关键字来定义,并在代码中进行替换.宏定义具有以下优点: 简化代码:宏定义可以将一些 ...