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=颜色) 如果 ...
随机推荐
- Python-pytest-repeat的简单使用
前言: 一.简介 pytest-repeat是pytest的插件,重复执行单个用例,或多个测试用例,并指定重复次数. 二.安装 1.执行如下命令 pip3 install pytest-repeat ...
- Java动态调用实体的get方法
/** * 动态调用实体的get方法(注意返回值) * @param dto 实体 * @param name 动态拼接字段 * @return {@link String} * @date 2021 ...
- 2022-09-29:在第 1 天,有一个人发现了一个秘密。 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后, 每天 给一个新的人 分享 秘密。 同时给你一个整数 forg
2022-09-29:在第 1 天,有一个人发现了一个秘密. 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后, 每天 给一个新的人 分享 秘密. 同时给你一个整数 forg ...
- 2020-11-22:mysql中,什么是filesort?
福哥答案2020-11-22:[答案来自此链接:](http://bbs.xiangxueketang.cn/question/412)如果mysql在排序的时候没有使用到索引那么就会输出 using ...
- IBM小型机 - AIX6.1系统安装教程
AIX6.1系统安装教程 由于工作原因,公司让我帮忙部署AIX小型机的系统,在各处找了很多教程,也请教了大佬协助(感谢大佬的帮助),下面以图文的形式总结了AIX 6.1系统的安装过程. 准备工作 硬件 ...
- django4 前后端分离和不分离的优缺点
Django4可以采用前后端分离或者不分离两种方式来开发Web应用,它们各有优缺点. 前后端分离的优点: 前后端职责分离:前端负责视图展示.用户交互,后端负责数据处理.逻辑处理,分工明确,开发效率高. ...
- vue全家桶进阶之路14:常用属性和方法
Vue2中常用的属性和方法: 属性 el:用于指定Vue实例挂载的元素,可以是CSS选择器.HTML元素或Vue组件. data:用于存储Vue实例的响应式数据,也可以是一个函数,返回一个对象,用于提 ...
- django model字段类型
1.models.AutoField 自增列=int(11) 如果没有的话,默认会生成一个名称为id的列,如果要显示的定义一个自增列,必须把该列设置为主键(primary_key=True)2.mod ...
- 2023-05-18:有 n 名工人。 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] 。 现在我们想雇佣
2023-05-18:有 n 名工人. 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] . 现在我们想雇佣 ...
- SpringBoot限制接口访问频率 - 这些错误千万不能犯
最近在基于SpringBoot做一个面向普通用户的系统,为了保证系统的稳定性,防止被恶意攻击,我想控制用户访问每个接口的频率.为了实现这个功能,可以设计一个annotation,然后借助AOP在调用方 ...