首页 > 编程语言 >python-json数据、pyecharts的入门使用(折线图)

python-json数据、pyecharts的入门使用(折线图)

时间:2024-03-28 15:59:55浏览次数:28  
标签:pyecharts python jp us json 2.1 data opts

目录

1.  json数据格式

 1.1  json.dumps()

1.2  json.loads()

2.  pyecharts的入门使用(折线图)

2.1   pyecharts使用的简单示例

2.1.1  导包

2.1.2  创建对象

2.1.3  添加x轴数据

2.1.4  添加y轴数据

2.1.5  设置全局配置项

2.1.6  render()方法,生成图像

3.  折线图开发示例


1.  json数据格式

JSON是一种轻量级的数据交换格式,它基于文本,具有易于阅读和编写的特性,同时也被广泛用于存储和传输数据

具体来说,JSON数据格式有以下几个特点:

  • 易于解析:与XML相比,JSON的解析更为简单和快速,因为它是基于文本的,可以被JavaScript原生支持,并且大多数编程语言都有解析JSON的库。
  • 结构紧凑:JSON数据结构紧凑,占用的空间小,这使得它在网络传输时更加高效。
  • 可读性强:JSON的可读性很强,它的设计初衷之一就是便于人类阅读和编写。
  • 兼容性好:JSON可以在不同的平台和语言之间进行数据交换,而不受特定语言或平台的限制。

 1.1  json.dumps()

将数据转换为json格式

# 准备列表,列表内每一个元素都是字典,将其转换为JSON
data = [{"name":"张大山","age":11}, {"name":"王大锤","age":13}, {"name":"赵小虎","age":16}]
json_str = json.dumps(data, ensure_ascii=False)
print(type(json_str))
print(json_str)
# 准备字典,将字典转换为JSON
d = {"name":"周节伦", "addr":"台北"}
json_str2 = json.dumps(d, ensure_ascii=False)
print(json_str2)

 运行如下:

1.2  json.loads()

将json()字符串转换为python数据类型

# 将json字符串转换为python数据类型,[{k:v, k:v}, {k:v, k:v}]
s = '[{"name": "张大山", "age": 11}, {"name": "王大锤", "age": 13}, {"name": "赵小虎", "age": 16}]'
l = json.loads(s)
print(l)
# 将json字符串转换为python数据类型{k:v, k:v}
s = '{"name": "周杰伦", "addr": "台北"}'
l = json.loads(s)
print(l)

2.  pyecharts的入门使用(折线图)

Pyecharts是一个基于ECharts的Python数据可视化库,它允许用户通过Python代码轻松生成丰富的交互式图表。以下是关于pyecharts的详细介绍:

  • 基本概念:Pyecharts是为了让Python开发者能够利用ECharts的强大功能来创建美观的数据可视化图表。ECharts是一个由百度开源的商业级数据图表库,它提供了多种图表类型和丰富的交互性功能。
  • 安装方法:安装pyecharts相对简单,可以通过pip命令进行安装,使得Python用户可以快速开始使用这个库。
  • 图表类型:Pyecharts支持多种图表类型,包括柱形图、折线图、饼图等,满足不同的数据展示需求。它还提供了一些特殊的图表类型,如词云和可视化地图,这些是其他库如matplotlib和seaborn不支持的。
  • 配置选项:Pyecharts提供了丰富的配置选项,用户可以根据自己的需求定制图表的颜色、标签、图例等元素。此外,它还支持链式调用和多种主题选择,使得创建图表的过程更加直观和灵活。
  • 示例代码:Pyecharts的官方文档中包含了许多示例代码,这些示例涵盖了从基本图表到复杂图表的绘制过程,帮助用户快速学习和使用这个库。
  • 优点:相比其他数据可视化库,pyecharts的操作更加简洁,API设计友好,即使是没有前端开发经验的Python开发者也能快速上手。它的图表具有可交互性,可以提升数据展示的效果,并且可以轻松移植到PPT等演示文稿中。

2.1   pyecharts使用的简单示例

2.1.1  导包

# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts, VisualMapOpts

2.1.2  创建对象

# 创建一个折线图对象
line = Line()

2.1.3  添加x轴数据

# 给折线图对象添加X轴都得数据
line.add_xaxis(["中国", "美国", "英国"])

2.1.4  添加y轴数据

# 给折线图对象添加y轴都得数据
line.add_yaxis("GDP", [30,20,10])

2.1.5  设置全局配置项

line.set_global_opts 是 pyecharts 库中用于设置全局配置项的方法。它接收一个名为 opts 的参数,该参数是一个字典,包含了各种全局配置选项。以下是一些常用的全局配置选项:

  1. title_opts:设置图表标题的配置项,如标题文本、字体大小等。
  2. tooltip_opts:设置提示框的配置项,如触发类型、格式化函数等。
  3. legend_opts:设置图例的配置项,如图例位置、布局方式等。
  4. xaxis_opts:设置 x 轴的配置项,如坐标轴类型、刻度间隔等。
  5. yaxis_opts:设置 y 轴的配置项,如坐标轴类型、刻度间隔等。
  6. datazoom_opts:设置数据区域缩放组件的配置项,如启用状态、缩放范围等。
  7. visualmap_opts:设置视觉映射组件的配置项,如颜色映射范围、颜色映射类型等。
  8. toolbox_opts:设置工具箱组件的配置项,如启用状态、功能列表等。
  9. brush_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)  # 视觉映射
)

2.1.6  render()方法,生成图像

# 通过render方法,将代码生成为图像

line.render()

3.  折线图开发示例

通过读取已有数据文件,制作2020年美日印三国疫情确诊人数对比折线图

美日印数据展示如下:

通过解析json数据,数据的结构如下:

"""
演示可视化开发,折线图开发
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts, VisualMapOpts, LabelOpts

# 处理数据
f_us = open("D:\pydaima\8day速成python\shuju\美国.txt", "r", encoding="UTF-8")
us_data = f_us.read()      # 读取到美国的全部内容,赋值给us_data
f_jp = open("D:\pydaima\8day速成python\shuju\日本.txt", "r", encoding="UTF-8")
jp_data = f_jp.read()      # 读取到日本的全部内容,赋值给jp_data
f_in = open("D:\pydaima\8day速成python\shuju\印度.txt", "r", encoding="UTF-8")
in_data = f_in.read()      # 读取到印度的全部内容,赋值给in_data

# 去掉不合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轴对象,x轴是共用的,添加一个x轴即可
line.add_xaxis(us_x_data)
# 添加y轴数据
line.add_yaxis("美国确诊人数", us_y_data, label_opts=LabelOpts(is_show=False))     # 添加美国的y轴数据,label_opts使生成图表不显示数据
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("示例.html")

f_us.close()
f_jp.close()
f_in.close()

生成图像:

标签:pyecharts,python,jp,us,json,2.1,data,opts
From: https://blog.csdn.net/weixin_63106307/article/details/137107025

相关文章

  • Flask python 开发篇:模型(model)Flask-SQLAlchemy的使用
    Flask-SQLAlchemy实现模型一、为什么使用模型?二、Flask-SQLAlchemy的引入三、使用Flask-SQLAlchemy构建模型文件3.1、安装扩展3.2、配置3.3、实战使用3.4、与蓝图相结合使用一、为什么使用模型?上一篇分享了蓝图的使用,也说蓝图相当于了php中控制器+路由的使用,那根......
  • [oeasy]python0012_程序写错了怎么办
    运行python文件_报错处理_NameError......
  • [Python]-基础-1.环境部署
    [Python]基础——环境部署&知识补充一、环境部署1.1软件下载1.1.1版本选择内置函数是Python自带的函数,不同版本的Python,其内置函数在数量和使用上大不相同,尤其是Python2和Python3大版本之间的迭代,教程全程采用Python3.8.3进行代码演示,为了避免版本兼容冲突,希望......
  • Python Flask-Mail实现邮件发送
    使用falsk-mail发送邮件一、邮件发送的扩展二、根据文档,总结发送邮件的流程三、实现邮件发送功能3.1、安装扩展3.2、配置3.3、发送邮件(创建mail、message实例并发送)3.4、发送带附件的邮件3.5、批量发送邮件3.6、异步发送邮件四、写在最后一、邮件发送的扩展关于......
  • Python中的杨辉三角
    杨辉三角,也被称为帕斯卡三角,是一个非常有趣的数学结构,它在组合数学中扮演着重要的角色。在这篇博客中,我们将探讨如何在Python中生成杨辉三角,并讨论不同方法的优缺点。杨辉三角简介杨辉三角是一个由数字构成的三角形阵列,其中每个数字是它正上方两个数字的和。例如,下面是杨辉三......
  • python3安装pandas库出现Could not import the lzma module
    1.安装lzma模块使用:python-mpipinstallbackports.lzma2.进入cd/usr/local/python3/lib/python3.7目录(系统不同,目录也有所不同,可以通过which命令来查找当前运行python是使用的那个目录的),然后编辑lzma.py,将下面代码:from_lzmaimport*from_lzmaimport_encode_......
  • 机器学习中的LightGBM模型及其优缺点(包含Python代码样例)
    目录一、简介二、优缺点三、样例代码四、总结一、简介LightGBM(LightGradientBoostingMachine)是一种基于梯度提升(GradientBoosting)算法的机器学习模型。它是由微软团队于2017年开发的,旨在解决大规模数据下的效率和准确性问题。LightGBM的原理如下:基于梯度提升:Ligh......
  • 如何系统得自学python?(基础知识篇完)——12.面向对象
     一、面向对象为了方便了解,我们拿面向过程做一个对比例如:肚子饿了,想吃饭面向过程:去超市---买菜---卖肉---买米---回家---洗菜---切肉---炒菜---煮米饭---盛饭---开吃面向对象:点外卖总结:⾯向对象就是将编程当成是⼀个事物,对外界来说,事物是直接使⽤的,不⽤去管他内部的情......
  • 你都用Python来干什么?为什么这么多人想学习Python?
    挺想回答一下这个问题的。我是非码专业,从2019年开始接触python。一开始其实需求非常简单,就是为了处理大量的Excel表格。其实本来四大的工作经历已经让我excel的水平比较高了,各种跨表定位、查询,复杂的字符串操作,还有vba函数都可以处理。但是python铺天盖地的宣传还是让我觉......
  • 如何系统地学习Python(一)基础语法与数据类型
    学习Python可以遵循一个结构化的框架,从基础知识开始,逐步深入到高级特性和实际应用。后面根据系统的学习Python的框架分享一系列文章,请交流指正:一、python介绍Python是一种高级的、解释型的、面向对象的编程语言。它具有简单易学、语法优雅、可读性强等特点,因此被广泛应用于We......