当前位置: 首页 > news >正文

Python中json模块的使用与pyecharts绘图的基本介绍

文章目录

    • json模块
      • json与Python数据的相互转化
    • pyecharts模块
      • pyecharts基本操作
        • 基础折线图
        • 配置选项
          • 全局配置选项
    • json模块的数据处理
    • 折线图示例
      • 示例代码

json模块

json实际上是一种数据存储格式,是一种轻量级的数据交互格式,可以把他理解成一个特定格式的字符串以文件的形式存储起来

主要是在各个编程语言中交流的数据格式

从形式上看,json数据格式类似于Python的字典,列表,元组等数据容器

他长得像这样

{"name":"summer","age":18}[{"name":"summer","age":18},{"name":"morty","age":14}]

我们可以利用一些工具将这些数据的格式层次显示清楚一点

在线JSON格式化工具

例如

当数据量巨大时,或者嵌套层数比较深的时候,这样的工具就比较方便了

json与Python数据的相互转化

import json # 导入json模块data = [{"name":"summer","age":18},{"name":"morty","age":14}]data = json.dumps(data)data = json.loads(data)

dumps方法就是将python数据转化为json数据

loads方法是将json数据转化为python数据

pyecharts模块

我们可以使用pyecharts模块进行数据可视化,这个模块的使用相对比较简单,这里只做基础的介绍

echarts是由百度开源的数据可视化的模块,交互性良好,图表也很精良,pyecharts只是他支持的一个部分

首先我们需要在命令行或者PyCharm中安装pyecharts模块

pip install pyecharts

pyecharts官方文档

pyecharts基本操作

基础折线图
from pyecharts.charts import Line # 导入Line功能构建折现图line = Line() # 得到折线图对象line.add_xaxis(['中国','美国','英国']) # 构建x轴行标line.add_yaxis('GDP',[100,30,50]) # 构建y轴列标与数据line.render() # 生成图表

运行完成之后回生成一个render.html文件,用浏览器打开之后就是我们的图表

配置选项

在pyecharts模块中由很多的配置选项

全局配置选项

这里可以用set_global_opts可以配置许多的内容,例如标题、图例、颜色、工具箱等内容

之后我们对示例详细讲解

json模块的数据处理

这里我们有一段json数据,格式化之后如下图所示

我们发现他除了数据内容,还包含了一串字符,在数据的末尾还有一个分号(未显示)

我们在把他转化成使用的元组、列表、字典时就需要对这个字符串进行处理

示例如下

import json
# 将json数据已经保存到data中
data = data.replace('jsonp_1629344292311_69436(','') #用空字符替换这一串data = data[:-2] # 去除最后的括号和分号

这个数据量其实非常大,我们只展示了其中的一部分

折线图示例

import json
from pyecharts.charts import Line
import pyecharts.options as opts

这里我们先导入相关的配置项

file_us = open('C:/Users/Downloads/资料/可视化案例数据/折线图数据/美国.txt', encoding='UTF-8')
us_data = file_us.read()

第一行我们获取了一个文件对象,利用UTF-8格式读取了

再将文件对象读取到us_data中

us_data = us_data.replace('jsonp_1629344292311_69436(','')
us_data = us_data[:-2]

这里我们将开头和结尾进行处理,获得了一个标准的json字符串,也就是我们上图所表示的结构

us_dict = json.loads(us_data)print(type(us_dict))
print(us_dict)

第一行我们将json字符串加载未python数据格式,通过结构我们可以知道这个结构最外层是字典,我们通过type()和print()验证

这个json包含了某国的疫情数据,由于数据嵌套比较深,我们先取到某国trend下的数据

trend_data = us_dict['data'][0]['trend']print(type(trend_data ))
print(trend_data )

第一行是我们一路取数据的过程,再经过输出验证一下

这里我们再看看此时的结构

这里我们可以看到有两部分,一部分是更新日期,另一部分分别是数据,因此我们要取更新日期作x轴,为了表示简单,我们只取一列数据作为y轴

x_data = trend_data['updateDate'][:360]
y_data = trend_data['list'][0]['data'][:360]

这里我们就分别取出来了x轴和y轴的数据了,当然为了避免过多的数据挤在同一个表中,使用了切片减少数据

line = Line()
line.add_xaxis(x_data)
line.add_yaxis('确诊人数',y_data)Line.render()

这里我们就创建了一个折线图对象,添加x轴y轴,将他生成

结果就像这样,如果我们有其他的y轴数据,继续添加y轴数据即可

line.set_global_opts(title_opts=opts.TitleOpts(title='某国确诊人数折线图',pos_left='center',pos_bottom='1%')
)

这里是添加了一个标题的全局选项,只是做一个演示,具体的功能还有非常多,详情还请阅读官方文档

示例代码

import json
from pyecharts.charts import Line
import pyecharts.options as optsfile_us = open('C:/Users/Downloads/资料/可视化案例数据/折线图数据/美国.txt', encoding='UTF-8')
us_data = file_us.read()us_data = us_data.replace('jsonp_1629344292311_69436(','')
us_data = us_data[:-2]us_dict = json.loads(us_data)
# print(type(us_dict))
# print(us_dict)trend_data = us_dict['data'][0]['trend']
# print(type(trend_data))
# print(trend_data)x_data = trend_data['updateDate'][:360]
y_data = trend_data['list'][0]['data'][:360]line = Line()
line.add_xaxis(x_data)
line.add_yaxis('确诊人数',y_data)line.set_global_opts(title_opts=opts.TitleOpts(title='某国确诊人数折线图',pos_left='center',pos_bottom='1%')
)line.render()file_us.close()

相关文章:

Python中json模块的使用与pyecharts绘图的基本介绍

文章目录 json模块json与Python数据的相互转化 pyecharts模块pyecharts基本操作基础折线图配置选项全局配置选项 json模块的数据处理折线图示例示例代码 json模块 json实际上是一种数据存储格式,是一种轻量级的数据交互格式,可以把他理解成一个特定格式…...

nodejs+vue+微信小程序+python+PHP医院挂号系统-计算机毕业设计推荐

当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术, 本医院挂号系统也是紧跟科学技术的发展,运用当今一流的软件技术实现软件系统的开发,让家具销…...

数据大模型与低代码开发:赋能技术创新的黄金组合

在当今技术领域,数据大模型和低代码开发已经成为两个重要的趋势。数据大模型借助庞大的数据集和强大的计算能力,助力我们从海量数据中挖掘出有价值的洞见和预测能力。与此同时,低代码开发通过简化开发流程和降低编码需求,使得更多…...

Redis BitMap(位图)

这里是小咸鱼的技术窝(CSDN板块),我又开卷了 之前经手的项目运行了10多年,基于重构,里面有要实现一些诸如签到的需求,以及日历图的展示,可以用将签到信息存到传统的关系型数据库(MyS…...

使用eclipse创建一个java文件并运行

启动 Eclipse 并创建一个新的 Java 项目: 打开 Eclipse。 选择 “File” > “New” > “Java Project”(文件 > 新建 > Java 项目)。 在弹出的窗口中,为你的项目命名,比如 MyJavaProject。 点击 “Finish”&#xff…...

C#上位机与欧姆龙PLC的通信05---- HostLink协议

1、介绍 Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令,可以对PLC进行I/O读写、可以对PLC进行I/O读写、改变操作模式、强制置位/复位等操作。由于是公开协议,即便是非欧姆龙的上位设备(软件)&…...

Uniapp 开发 BLE

BLE 低功耗蓝牙(Bluetooth Low Energy,或称Bluetooth LE、BLE,旧商标Bluetooth Smart),用于医疗保健、运动健身、安防、工业控制、家庭娱乐等领域。在如今的物联网时代下大放异彩,扮演者重要一环&#xff…...

c语言排序算法

C语言代码示例&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a; void bubbleSort(int arr[], int n) {for (int i 0; i < n-1; i) {for (int j 0; j < n-i-1; j) {if (arr[j] > arr[j1]) {int temp arr[j];arr[j] arr[j1];arr[j1] temp;…...

【机器学习】模式识别

1 概述 模式识别&#xff0c;简单来讲&#xff0c;就是分类问题。 模式识别应用&#xff1a;医学影像分析、人脸识别、车牌识别、遥感图像 2 模式分类器 分类器的分类&#xff1a;线性分类器、非线性分类器、最近邻分类器 2.1 分类器的训练&#xff08;学习&#xff09;过…...

【Prometheus|报错】Out of bounds

【背景】进入Prometheus地址的9090端口&#xff0c;pushgateway&#xff08;0/1&#xff09;error : out of bounds 【排查分析】 1、out of bounds报错&#xff0c;是由于Prometheus向tsdb存数据出错&#xff0c;与最新存数据的时间序列有问题&#xff0c;有可能当前时间与最…...

【音视频】Mesh、Mcu、SFU三种框架的总结

目录 三种网络场景介绍 【Mesh】 【MCU】(MultiPoint Control Unit) 【SFU】(Selective Forwarding Unit) 三种网络架构的优缺点 Mesh架构 MCU架构(MultiPoint Control Unit) SFU架构(Selective Forwarding Unit) 总结 参考文章 三种网络场景介绍 【Mesh】 Mesh架构…...

高级算法设计与分析(四) -- 贪心算法

系列文章目录 高级算法设计与分析&#xff08;一&#xff09; -- 算法引论 高级算法设计与分析&#xff08;二&#xff09; -- 递归与分治策略 高级算法设计与分析&#xff08;三&#xff09; -- 动态规划 高级算法设计与分析&#xff08;四&#xff09; -- 贪心算法 高级…...

MATLAB - 机器人逆运动学设计器(Inverse Kinematics Designer APP)

系列文章目录 前言 一、简介 通过逆运动学设计器&#xff0c;您可以为 URDF 机器人模型设计逆运动学求解器。您可以调整逆运动学求解器并添加约束条件&#xff0c;以实现所需的行为。使用该程序&#xff0c;您可以 从 URDF 文件或 MATLAB 工作区导入 URDF 机器人模型。调整逆…...

使用OpenCV DNN模块进行人脸检测

内容的一部分来源于贾志刚的《opencv4应用开发、入门、进阶与工程化实践》。这本书我大概看了一下&#xff0c;也就后面几章比较感兴趣&#xff0c;但是内容很少&#xff0c;并没有想像的那种充实。不过学习还是要学习的。 在实际工程项目中&#xff0c;并不是说我们将神经网络…...

C#中使用OpenCV的常用函数

以下是一些C#中使用OpenCV的常用函数例子&#xff1a; 1. 加载图像&#xff1a; using OpenCvSharp;Mat image Cv2.ImRead("path_to_your_image.jpg", ImreadModes.Color); 2. 显示图像&#xff1a; Cv2.NamedWindow("Image Window", WindowFlags.Nor…...

使用Swift Package Manager (SPM)实现xcframework分发

Swift Package Manager (SPM) 是苹果官方提供的用于管理 Swift 项目的依赖关系和构建过程的工具。它是一个集成在 Swift 编程语言中的包管理器&#xff0c;用于解决在开发过程中管理和构建包依赖项的需求。 1、上传xcframework.zip到服务端 压缩xcframeworks成一个zip包&…...

非阻塞 IO(NIO)

文章目录 非阻塞 IO(NIO)模型驱动程序应用程序模块使用 非阻塞 IO(NIO) 上一节中 https://blog.csdn.net/tyustli/article/details/135140523&#xff0c;使用等待队列头实现了阻塞 IO 程序使用时&#xff0c;阻塞 IO 和非阻塞 IO 的区别在于文件打开的时候是否使用了 O_NONB…...

Android应用-flutter使用Positioned将控件定位到底部中间

文章目录 场景描述示例解释 场景描述 要将Positioned定位到屏幕底部中间的位置&#xff0c;你可以使用MediaQuery来获取屏幕的高度&#xff0c;然后设置Positioned的bottom属性和left或right属性&#xff0c;一般我们left和right都会设置一个值让控制置于合适的位置&#xff0…...

Django 简单图书管理系统

一、图书需求 1. 书籍book_index.html中有超链接&#xff1a;查看所有的书籍列表book_list.html页面 2. 书籍book_list.html中显示所有的书名&#xff0c;有超链接&#xff1a;查看本书籍详情book_detail.html(通过书籍ID)页面 3. 书籍book_detail.html中书的作者和出版社&…...

C++内存管理和模板初阶

C/C内存分布 请看代码&#xff1a; int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)mallo…...

QtRO(Qt Remote Objects)分布式对象远程通信

一、什么是QtRO Qt Remote Objects&#xff08;QRO&#xff09;是Qt提供的一种用于实现远程对象通信的机制。 QtRO支持两种类型的通信&#xff1a;RPC&#xff08;远程过程调用&#xff09;和LPC&#xff08;本地进程通信&#xff09;。 RPC&#xff08;远程过程调用&#xf…...

【K8s】1# 使用kuboard-spray安装K8s集群

文章目录 搭建k8s集群1.推荐配置1.1.服务器配置1.2.软件版本 2.使用Kuboard-Spray安装k8s集群2.1.配置要求2.2.操作系统兼容性2.3.安装 Kuboard-Spray2.4.加载离线资源包2.5.规划并安装集群2.6.安装成功2.7.访问集群 3.涉及的命令3.1.linux 4.问题汇总Q1&#xff1a;启动离线集…...

leetCode算法—12. 整数转罗马数字

12. 整数转罗马数字 难度&#xff1a;中等 ** 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即…...

使用OpenCV4实现工业缺陷检测的六种方法

目录 1 机器视觉2 缺陷检测3 工业上常见缺陷检测方法 1 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成&#xff0c;…...

Excel 获取当前行的行数

ROW() 获取当前行 ROW()1 获取当前行然后支持二次开发...

R语言【stringr】——str_detect 检测是否存在字符串的匹配项

Package stringr version 1.5.1 str_detect(string, pattern, negate FALSE) 参数【string】&#xff1a;输入向量。既可以是字符向量&#xff0c;也可以是强制作为一个字符向量。 参数【pattern】&#xff1a;要寻找的模式。默认解释为正则表达式&#xff0c;如 vignette(&…...

【SpringMVC】SpringMVC的请求与响应

文章目录 0. Tomcat环境的配置1. PostMan工具介绍创建WorkSpace建立新的请求 2. 请求映射路径案例结构与代码案例结构案例代码 案例存在问题解决方案方法方法升级版——配置请求路径前缀注解总结 3. Get请求与Post请求案例结构与案例代码案例结构案例代码 Get请求Post请求接收中…...

Spring Boot3通过GraalVM生成exe执行文件

一、安装GraalVM 1、官网&#xff1a;https://www.graalvm.org/downloads/ 2、配置环境变量 2.1、环境变量必须使用JAVA_HOME&#xff0c;否则会出现问题 2.2、在系统变量配置Path,%JAVA_HOME%\bin&#xff0c;注意必须放在顶部第一位 2.3、配置jdk的环境变量&#xff0c;在P…...

【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为

文章目录 1. 了解缓存策略和源请求策略1.1 使用缓存键和缓存策略 实验&#xff1a;使用CloudFront缓存策略和缓存键控制缓存行为 接上一篇文章【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发&#xff0c;我们现在了解和配置如何使用缓存策略及源请求策略&#xff0c;…...

达梦数据对比工具的部署与使用

1、拷贝达梦软件bin目录到Oracle服务器&#xff08;root用户&#xff09; 压缩Linux rh6 x86版本的达梦数据库bin目录&#xff0c;例如压缩文件为dmbin.tar.gz&#xff0c;将文件拷贝到Oracle服务器指定目录并解压&#xff08;如&#xff1a;/home/oracle/dmbin&#xff09;&a…...

丽水市龙泉市网站建设公司/搜索引擎营销怎么做

前端web开发工程师简历-自我评价范文/怎么写【网盘下载】100清新大气简历模板&#xff1a;https://zhuanlan.zhihu.com/p/115911695https://zhuanlan.zhihu.com/p/113308665前端工程师自我评价范文&#xff08;案例1&#xff09;1. 熟悉项目开发流程,能快速对接产品需求,前后端…...

qq群网站制作/经典软文案例和扶贫农产品软文

上一节跟大家讲了Python的列表&#xff0c;当然不是完整的讲完&#xff0c;后续我们还会提到&#xff0c;这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性&#xff0c;可以存储不同类型的值&#xff0c;但在某些方面元组又比不上列表 定义…...

苹果手机怎么做ppt下载网站/网络营销大赛策划书

jQuery UI 设计主题文件结构主题是以特定的方式来增加他们的易用性。通常&#xff0c;文件目录结构如下所示&#xff1a;themename/ – 您的主题必须完全包含在一个单独的以主题名称命名的文件夹内。themename/themename.css – 这是基本的 CSS 文件。无论使用了哪个插件&#…...

做网站的前景如何/无锡网站制作无锡做网站

1 目的 给python应用一个独立的运行环境&#xff0c;独立于其它的python应用也独立于系统的python环境。 环境升级不影响其它应用。 避免包冲突。 2 创建方式 2.1 pycharm中创建 project interpreter处点击配置按钮---new environment---然后选择一个location和选择interpreter…...

建设银行网站安全分析/微信公众号推广方法有哪些

题目&#xff1a; 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建出该二叉树。 假设输入的前序遍历和中序遍历结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建二叉树并输出它的后序遍历序列。 …...

python编程网站/搜索引擎排名优化seo课后题

双十一是中国的销售旺季&#xff0c;而排灯节则是印度的销售旺季&#xff0c;在时间上两者也相当接近。国内最大电商阿里巴巴投资并是最大股东的印度电视Paytm mall正为此做准备&#xff0c;以与印度市场的两大电商亚马逊和flipkart展开竞争&#xff0c;而它的策略就是将在国内…...