Python-折线图可视化

折线图可视化

  • 1.JSON数据格式
  • 2.pyecharts模块介绍
  • 3.pyecharts快速入门
  • 4.创建折线图

1.JSON数据格式

1.1什么是JSON

  • JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据
  • JSON本质上是一个带有特定格式的字符串
    1.2主要功能
  • json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互
    1.3JSON有什么用
  • 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典
  • 为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:
    在这里插入图片描述
    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)

2.pyecharts模块介绍

pyecharts模块

  • 如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成

  • 概况 : Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是门富有表达力的语言,很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了.

pyecharts模块安装

  • 使用在前面学过的pip命令即可快速安装PyEcharts模块

  • pip install pyecharts
    在这里插入图片描述

3.pyecharts快速入门

3.1pyecharts入门

  • 基础折线图
# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts
from pyecharts.options import LegendOpts
from pyecharts.options import ToolboxOpts
from pyecharts.options import VisualMapOpts
# 创建一个折线图对象
line = Line()
# 给折线对象添加x轴的数据
line.add_xaxis(["中国","美国","英国"])
# 给折线对象添加y轴的数据
line.add_yaxis("GDP",[30,20,10])
# 设置全局变量项set_global_opts来设置
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()

在这里插入图片描述

pyecharts有哪些配置选项
set_global_opts方法(全局配置)

  • 配置图标和标题
  • 配置图例
  • 配置鼠标移动效果
  • 配置工具栏
  • 等整体配置项
    在这里插入图片描述

4.创建折线图

4.1导入模块

import  json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts

折线图相关配置
在这里插入图片描述

  • add_yaxis相关配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • set_global_opts全局配置选项
    在这里插入图片描述
import  json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts,InitOpts,AxisOpts,LegendOpts
# 处理数据
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规范的开头
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]
# 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(init_opts=InitOpts(width="1600px",height="800px"))
# 添加x轴数据
line.add_xaxis(us_x_data)  # x轴是公用的,所以使用一个国家的数据即可
# 添加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_left="center",pos_bottom="1%"),# x轴配置项xaxis_opts=AxisOpts(name="时间"),    # 轴标题# y轴配置项yaxis_opts=AxisOpts(name="累计确诊人数"),    # 轴标题# 图例配置项legend_opts=LegendOpts(pos_left='70%'),    # 图例的位置
)
# 调用render方法,生成图标
line.render()
# 关闭文件
f_us.close()
f_jp.close()
f_in.close()

在这里插入图片描述

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

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

相关文章

网络监控软件提高企业网络效率

企业网络监控是主动监控和管理业务网络以确保无缝性能并提高可靠性的做法,持续监控和分析网络各层的可用性、运行状况和性能,但是,选择的网络监控软件应该能够满足业务需求。不是所有的网络监控工具都能用于监控企业网络,它们无法…

DENet:用于可见水印去除的Disentangled Embedding网络笔记

1 Title DENet: Disentangled Embedding Network for Visible Watermark Removal(Ruizhou Sun、Yukun Su、Qingyao Wu)[AAAI2023 Oral] 2 Conclusion This paper propose a novel contrastive learning mechanism to disentangle the high-level embedd…

【基础算法】前缀和

文章目录 算法介绍什么是前缀和??前缀和的作用一维数组求解前缀和(Si)二维数组求解前缀项和 示例题目1:acwing795示例题目2:acwing796总结收获 算法介绍 什么是前缀和?? 数组: a[1], a[2], a[3], a[4], a[…

WPF——命令commond的实现方法

命令commond的实现方法 属性通知的方式 鼠标监听绑定事件 行为:可以传递界面控件的参数 第一种: 第二种: 附加属性 propa:附加属性快捷方式

加密的艺术:对称加密的奇妙之处(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

SpringData JPA 整合Springboot

1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

【Linux】cp问题,生产者消费者问题代码实现

文章目录 前言一、 BlockQueue.hpp&#xff08;阻塞队列&#xff09;二、main.cpp 前言 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯&#xff0c;而通过阻塞队列来进行通讯&#xff0c;所以生产者生产完数据之后不用…

图书管理系统jsp + servlet+mysql

图书管理系统 项目使用jsp servletmysql实现&#xff1b; 登陆注册 首页 首页显示图书信息 图书管理 1添加书籍 2查询书籍 3预览书籍 4修改书籍 用户管理 1查询用户 2修改用户 3 删除用户 链接&#xff1a;https://pan.baidu.com/s/1QXK--ypb6OadbmKFlc0jUQ

【Qt QML入门】TextInput

TextInput&#xff1a;单行文本输入框。 TextInput除了光标和文本外&#xff0c;默认没有边框等效果。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: truetitle: qsTr("Hello World")//单行文本输…

市场全局复盘 20231215

昨日回顾&#xff1a; SELECT CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封板, 120) AS 最后封板,涨停分析,_3日涨幅百分比,连板天,封单额,封单额排名,DDE散户数量,总金额,获利盘 FROM dbo.全部&#xff21;股20231…

【算法Hot100系列】正则表达式匹配

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

diffuser库之 Load pipelines, models, and schedulers 的阅读记录

加载不同pipeline safe checker pipeline转换 加载模型配置 远程库与本地库使用区别 本地库必须引入variant参数用于选择加载哪一种模型 保存模型 修改pipeline的scheduler pipeline class以及各个子模块的定义