python基础综合案例(数据可视化—折线图可视化)

news2024/11/28 20:41:25

可视化案例的学习目标:

·通过案例,回忆巩固python基础的语法

·锻炼编程能力,熟练语法的使用

1.json数据格式

两种不同的语言由于数据格式不同,所以没有办法直接沟通,就比如我们可以将python

的数据格式转成json,然后把json给c

json的主要功能其实就是不同语言之间的中转站

json其实就是一个python的列表,或者说是一个python的字典

中文的转换会涉及一个编码问题,只需要输入一个参数 ensure_ascii就行

ensure_ascii=False 这个意思就是不使用ASCII来转换它,而是把它内容直接输出出去

总结:

·json:是一种轻量级的数据交互格式,采用完全独立于编程语言的文本格式来存储和表示数据(就是字符串)

·python语言使用json有很大的优势,因为:json无非就是一个独立的字典或一个内部元素都是字典的列表,所以json可以直接和python的字典或列表进行无缝转换

·通过json.dumps(data)方法把python数据转化为了json数据,如果有中文可以带上:ensure_ascii=False参数来确保中文正常转换

·通过json.loads(data)方法把json数据转化为了python列表或字典

2.pyecharts模块介绍

pyecharts模块介绍

pyecharts的本体就是Echarts的框架,Echarts框架的python版本:PyEcharts包

他的官网是pyecharts.org

其实它还有一个画廊的功能,官方画廊的网址是http://gallery.pyecharts.org

它的功能就是产生各种各样的图表,可以在上面查看自己想要的图标代码

最下面也会有相应的预览效果图,支持放大缩小观看

除此以外还有各种各样的图标,大感兴趣的自行搜索

pyecharts模块安装

输入 pip install pyecharts回车即可下载,下载完成以后可以输入python,切换到python环境中,然后输入import pyecharts,如果没有出现问题就是下载成功,可以正常使用了

3.pyecharts快速入门

基础折线图

输入代码后你会发现没有然后输出,但是你发现左边多了一个render.html的文件

打开它你会发现出现了一堆代码,这些代码只有在浏览器中才可以查看

点击右上角,选择你电脑有的浏览器,即可使用浏览器打开

这就是刚才所创建的折线图

配置选项

全局变量就是针对我们整个图像来去进行设置,比如说图像的标题,图像的图例,工具箱等等。

全局配置项能做什么?

·配置图表的标题

·配置图例

·配置鼠标移动效果

·配置工具栏

·等整体配置项

系列配置其实就是针对我们具体的轴数据进行配置,比如说针对我们y轴的这个数据,去进行相关个性化的配置

全局变量就是针对这些通用的变量去设置

ctrl p 可以查看参数

line.set_global_opts(
    title_opts=TitleOpts(title = "GDP展示",pos_left="center",pos_bottom="1%")
)

这一段代码是针对折线图标题的控制,title是标题名字,pos_left表示标题距离左边有多远,pos_bottom表示距离底部有多远,center表示中心的意思

from pyecharts.options import  TitleOpts

这一段代码是对标题模块的导入

效果展示:

import导入可以使用逗号,输入多个模块名

这些是一部分具体演示,大家可以反复琢磨,不理解的同学,可以去参考pyecharts首页,点击全局配置项即可查看具体用法

4.数据处理

大家想要处理数据,使得数据看起来更简单,可以使用这个网址,进行数据处理

JSON在线视图查看器(Online JSON Viewer)

点击json视图,然后输入数据。

这里我以自己的非常多的一个数据为例给大家演示。

{"status":0,"msg":"success","data":[{"name":"美国","trend":{"updateDate":["2.22","2.23","2.24","2.25","2.26","2.27","2.28","2.29","3.1","3.2","3.3","3.4","3.5","3.6","3.7","3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.15","3.16","3.17","3.18","3.19","3.20","3.21","3.22","3.23","3.24","3.25",......382,63297,39060,35816,1275,66886,136179,96705,100870,55840,26529,128492,156048,133543,115438,144461,70266,24123,236918,115516,171448,142576,155334,70119,32695,271457,169842]}]}}]}

是不是还是有些太长了

点击视图,即可看到最简版,点击加号,里面逐层嵌套

由此可见,开头和结尾这两部分不符合json的规范,将他替换成空字符,也就是删掉它

当我们把json格式转化为python,可以使用这个例子来演示一下,如果运行不报错,那就是没有问题

仔细观察一下这个层级关系,可以直接取到trend里面,简化数据

我们只取2020年的数据

这样找层级关系

写两步就print运行看看是否正确

5.创建折线图

目标:通过pyecharts完成美日印三国疫情折线图

相信大家应该已经掌握了折线图的制作流程,接下来直接上代码

label_opts=LabelOpts(is_show=False)

这个代码可以让折线统计图上的数字不显示出来

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts
# 处理数据
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()  # 印度的全部内容
# 去除不合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()  # 构建折线图对象
# 添加x轴数据
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%")
)

# 调用render方法,生成图表
line.render()
# 关闭文件对象
f_us.close()
f_jp.close()
f_in.close()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VirtualBox虚拟机桥接模式固定ip详解

VirtualBox虚拟机桥接模式固定ip详解 VirtualBox 桥接设置Ubuntu 24.04使用固定IP问题记录 VirtualBox 桥接设置 为什么设置桥接模式?桥接模式可以实现物理机和虚拟机互相通信,虚拟机也可以访问互联网(推荐万金油),物…

STM32通信协议-I2C

目录 一,IC2的协议规则 I2C总线是PHILIPS公司开发的两线式串行总线,I2C总线主要解决了单片机一对多通信的问题 两根通信线:SCL,SDA,同步,半双工通信,支持数据应答机制,支持总线挂载多设备。 …

Verilog:参数(parameter)的使用

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 参数(parameter)一般用于定义常数,常用于进行可配置的参数化设计中,本文将对参数的使用进行详细介绍。 首先来看看参数的BNF范式&#xff…

Hadoop 安装教程——单节点模式和分布式模式配置

文章目录 一、预备知识1.1 Hadoop 发行版本1.2 部署方式 二、预备条件2.1 环境准备2.2 创建新用户(可选)2.3 配置 SSH 无密码登录2.4 下载 Hadoop2.5 编辑 hadoop-env.sh 脚本2.6 编辑 dfs 和 yarn 脚本 三、单节点模式部署3.1 官方使用案例3.2 查看运行结果 四、伪分布模式部署…

用哪种建站程序做谷歌SEO更容易?

做网站很容易,但做一个能带来流量和订单的网站就没那么简单了。尤其是在谷歌SEO优化方面,不同的建站程序对SEO的支持程度也不同。在这方面,WordPress和Shopify无疑是最佳选择。 WordPress作为一个内容管理系统(CMS)&am…

关键词提取技术:TF-IDF 详解

1. 什么是TF-IDF? TF-IDF(Term Frequency-Inverse Document Frequency) 是一种统计方法,用于评估单词在文档集或语料库中的重要性。它是自然语言处理和信息检索中的核心技术之一。 TF-IDF主要基于以下两个概念: TF&a…

Java毕业设计 基于SSM jsp餐厅卫生安全系统

Java毕业设计 基于SSM jsp餐厅卫生安全系统 这篇博文将介绍一个基于SSM框架和jsp开发的餐厅卫生安全系统,适合用于Java毕业设计。 功能介绍 餐厅人员: 注册 登录 首页 图片轮播 窗口信息 窗口详情 文明窗口 差评窗口 系统公告 个人中心 管理员:…

亚信安全DeepSecurity中标知名寿险机构云主机安全项目

近日,亚信安全DeepSecurity成功中标国内知名寿险机构的云主机安全项目。亚信安全凭借在云主机安全防护领域的突出技术优势,结合安全运营的能力,以“实战化”为指导,为用户提供无惧威胁攻击、无忧安全运营的一站式云安全体系&#…

Anaconda和Pycharm超详细安装教程(2024版本+Win11)

一、安装Anaconda 1.1 下载Anaconda 在官方网站(Free Download | Anaconda)上下载适用于你的操作系统的 Anaconda 安装包。(这里以windows为例) 1.2 安装Anaconda 打开下载的安装包,并按照安装向导的指示进行安装。在安装过程中,你可以选择默认的安装选项,也可以根据…

Visual Studio安装图文详解教程

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 教程说明 本教程旨在详细介绍 Visual Studio 社区版的安装过程及其注意事项。 Visual Studio简介 Visual Studio 社区版功能完备且可扩展的免费 IDE,可用于创…

NVR接入录像回放平台EasyCVR视频融合平台语音对讲配置

国标GB28181视频平台EasyCVR视频融合平台可拓展性强、视频能力灵活,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析接入等功能。其中,在语音对讲方面,NVR接入录像回放平台目前…

4种鼓励创业创新的方法

随着市场趋于饱和,许多企业,尤其是初创企业,很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新,从员工到品牌皆如此。 那么究竟如何…

【设计模式-原型】

**原型模式(Prototype Pattern)**是一种创建型设计模式,旨在通过复制现有对象的方式来创建新对象,而不是通过实例化类来创建对象。该模式允许对象通过克隆(复制)来创建新的实例,因此避免了重新创…

LabVIEW提高开发效率技巧----插入式架构

随着LabVIEW项目规模的扩大和系统复杂性的增加,传统的单一代码架构难以应对后期维护和功能扩展的需求。插入式架构(Plug-In Architecture)作为一种模块化设计方式,通过动态加载和运行子VI,使系统功能更加灵活、模块化&…

Oracle OCP认证考试考点详解082系列01

题记: 本篇博文是Oracle OCP认证考试考点详解082系列的第一篇,本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 1. 第一题: 1. 题目 2. 解析及答案 关于Oracle数据库中节…

6.1 特征值介绍

一、特征值和特征向量介绍 本章会开启线性代数的新内容。前面的第一部分是关于 A x b A\boldsymbol x\boldsymbol b Axb:平衡、均衡和稳定状态;现在的第二部分是关于变化的。时间会加入进来 —— 连续时间的微分方程 d u / d t A u \pmb{\textrm{d}…

通过AWS Bedrock探索 Claude 的虚拟桌面魔力:让 AI 代替你动手完成任务!

前言 大家好,昨夜Anthropic 发布了更新。现在 Claude 3.5 Sonnet(V2) 和 Claude 3.5 Haiku,以及名为 computer use 的新功能已经作为公开测试版发布了。 Introducing computer use, a new Claude 3.5 Sonnet, and Claude 3.5 Ha…

生成对抗网络基本原理

生成对抗网络(Generative Adversarial Networks,简称GANs)是由Ian Goodfellow等人在2014年提出的一种深度学习模型,它在生成模型领域引起了革命性的变化。GANs的核心思想是通过引入一个对抗过程来生成新的数据样本,这个…

【1024程序员节】MybatisPlus入门(一)MybatisPlus简介

一、MyBatis简介 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 - 官网:https://mybatis.plus/ https://mp.baomidou.com/ MyBatisPlus特性: - 无侵入:只做增强…

接口测试 —— Postman 变量了解一下!

Postman变量是在Postman工具中使用的一种特殊功能,用于存储和管理动态数据。它们可以用于在请求的不同部分、环境或集合之间共享和重复使用值。 Postman变量有以下几种类型: 1、环境变量(Environment Variables): 环境变量是在…