Python基础综合案例:折线图可视化

2023-11-09

Python学习——折线图可视化

目录

Python学习——折线图可视化

Json数据格式

 pyecharts模块

 数据处理

案例:美日印疫情数据折线图


Json数据格式

一种轻量级的数据交互格式,负责在不同编程语言中的数据传递和交互。一种字符串。其功能类似于全国各地都有方言,但要进行交流就用普通话。

Json数据格式要为Python中的字典或者列表(列表内元素都是字典)。因此,Json可以和Python的字典或者列表(列表内元素都是字典)无缝衔接。

数据转换:

  • json.dumps()# 将python数据转化为json数据,如果有中文,ensure_ascii=False可以将中文正常转换,不然转为Unicode字符。
  • json.loads()     # 将json数据转化为Python数据。

代码示例如下:

"""
 演示Json数据交互
"""
# 导入内置的json模块
import json
# 数据格式定义为列表内全部为字典类型
data = [{"name": "bia布", "age": 18, "level": 5},
        {"name": "风筝", "age": 21,},
        {"name": "kite", "age": 16}]
# ensure_ascii=False:不使用ASCII码转化,直接将内容输出,可以将中文直接输出,不然转为Unicode字符
# 通过json.dumps()将python数据转化为json数据
json_str = json.dumps(data, ensure_ascii=False)
print(type(json_str))  # 转换为字符串类型
print(json_str)


# 通过 将json数据转化为Python数据
# 输入数据为字符串类型,外部加''单引号
s = '[{"name": "bia布", "age": 18, "level": 5}, {"name": "风筝", "age": 21},{"name": "kite", "age": 16}]'
l = json.loads(s)
print(type(l))  # 转换为列表类型
print(l)

# 通过 将json数据转化为Python数据
d = '{"name": "bia布", "age": 18, "level": 5}'
m = json.loads(d)
print(type(m))   # 转换为字典类型
print(m)

运行结果如下:

<class 'str'>
[{"name": "bia布", "age": 18, "level": 5}, {"name": "风筝", "age": 21}, {"name": "kite", "age": 16}]
<class 'list'>
[{'name': 'bia布', 'age': 18, 'level': 5}, {'name': '风筝', 'age': 21}, {'name': 'kite', 'age': 16}]
<class 'dict'>
{'name': 'bia布', 'age': 18, 'level': 5}

 pyecharts模块

用于开发数据可视化效果图,官画廊为gallery.pyecharts.org。

pyecharts模块有很多配置选项,常用的有两种:

  • 全局配置选项  # 对整个图像设置
  • 系列配置选项   # 对某个序列配置,例如x轴等

set_global_opts()方法配置全局选项。

基础折线图示例代码如下:

"""
 演示构建折线图
 方法和函数功能打开官方网站:pyecharts.org查询
"""

# 导入包
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])
# 设置全局配置项
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()

生成图像如下图所示:

 数据处理

ab173网站可以快速分清数据的结构,便于调用数据。

案例:美日印疫情数据折线图

图表生成代码示例如下:

"""
 演示可视化需求1:折线图开发
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts
# 数据处理
f_us = open("E:/美国.txt", "r", encoding="UTF-8")
us_data = f_us.read()  # 读取美国全部数据
f_jp = open("E:/日本.txt", "r", encoding="UTF-8")
jp_data = f_jp.read()  # 读取日本全部数据
f_in = open("E:/印度.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(", "")

# 去除结尾
us_data = us_data[0:-2:1]
jp_data = jp_data[0:-2:1]
in_data = in_data[0:-2:1]

# 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轴
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))
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%") # 标题设置
)

# 调用render
line.render()

# 关闭文件对象
f_in.close()
f_jp.close()
f_us.close()

运行结果如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python基础综合案例:折线图可视化 的相关文章

  • 在Python中不断寻找用户输入

    我将如何编写一个始终寻找用户输入的 Python 程序 我想我希望有一个等于输入的变量 然后根据该变量的等于值会发生不同的情况 因此 如果变量是 w 那么它将执行某个命令并继续执行 直到收到另一个输入 例如 d 然后会发生不同的情况 但直到
  • 如何将 Google Cloud Storage 中的许多文件设为私有?

    我进行了很多研究 但无法为此提出解决方案 以下是我用来在 GCP 中公开所有文件的代码 def make blob public bucket name blob name Makes a blob publicly accessible
  • 如何使用 .pth 文件添加 Python 导入路径

    如果我将 pth 文件放入 site packages 中 则会给出一个ImportError 我不知道如何通过创建 pth 文件来导入 指在Python中导入 https stackoverflow com questions 69728
  • Pandas 在列级别连接数据帧时添加键

    根据 Pandas 0 19 2 文档 我可以提供keys参数来创建结果多索引 DataFrame 一个例子 来自 pandas 文档 是 result pd concat frames keys x y z 我将如何连接数据框以便我可以在
  • Colab 的使用限制持续多久?

    当我对同一帐户的两个笔记本同时使用两个 GPU 约半小时后 Colab 已 12 小时未运行 此消息不断弹出 由于 Colab 中的使用限制 您当前无法连接到 GPU 自从我上次使用 colab 以来已经过去了大约两个小时 但该消息仍然弹出
  • 如何在seaborn中绘制离散变量的分布图

    当我画画的时候displot对于离散变量 分布可能不像我想象的那样 例如 We can find that there are crevices in the barplot so that the curve in kdeplot is
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • 在 Python 中使用类作为命名空间是个好主意吗

    我正在将一堆相关的东西放入一个类中 主要目的是将它们组织到命名空间中 class Direction north 0 east 1 south 2 west 3 staticmethod def turn right d return tu
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 为什么在 __init__ 函数中声明描述符类会破坏描述符功能?

    在下面的 B 类中 我想要 set 每当您赋值给 A 类中的函数时 就会调用该函数B a 相反 将值设置为B a覆盖B a与价值 C类分配给C a工作正常 但我想为每个用户类都有一个单独的 A 实例 即我不想在 C 的一个实例中更改 a 来
  • 检查列表是否已排序的 Pythonic 方法

    有没有一种Python式的方法来检查列表是否已经排序ASC or DESC listtimestamps 1 2 3 5 6 7 就像是isttimestamps isSorted 返回True or False 我想输入一些消息的时间戳列
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 在 matplotlib 中将 3D 背景更改为黑色

    我在将 3D 图表的背景更改为黑色时遇到问题 这是我当前的代码 当我将facecolor设置为黑色时 它会将图表内部更改为灰色 这不是我想要的 fig plt figure fig set size inches 10 10 ax plt
  • 获取 python 模块的 2 个独立实例

    我正在与以非 OO 方式编写的 python 2 x API 进行交互 它使用模块全局范围来处理一些内部状态驱动的东西 在它不再是单例的情况下需要它 并且修改原始代码 不是我们的 不是一个选择 如果不使用单独解释器的子进程运行 有什么方法可
  • 从 python 文件调用 Julia 函数

    我能够创建一个 docker 环境 然后按照这个线程我有一个用 Julia 编写的高性能函数 如何从 Python 中使用它 https stackoverflow com questions 64241264 i have a high
  • datetime strftime 不输出正确的时间戳

    下列 gt gt gt from dateutil parser import parse gt gt gt parse 2013 07 02 00 00 00 0000 datetime datetime 2013 7 2 0 0 tzi
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我
  • Django 按小时过滤

    我找到了那个链接 http code djangoproject com attachment ticket 8424 time filters diff http code djangoproject com attachment tic
  • “yield item”与 return iter(items) 相比有何优点?

    在下面的示例中 resp results 是一个迭代器 版本1 items for result in resp results item process result items append item return iter items

随机推荐

  • 通用图片分类项目

    generalImageClassification 文章目录 generalImageClassification 1 数据准备 1 1 开源数据集 1 2 利用特定网站爬数据 2 分类模型的选择 3 代码结构及使用方法 3 1 代码结构
  • python基础练习题--变量

    01计算下列表达式 30 32 8 3210 342 8 5 22 3 2 4 7 34 5 1 3 2 16mod7 7 30 3 2 8 3 2 10 result1 30 pow 3 2 8 pow 3 2 10 print resu
  • Delphi集合数据类型的应用

    集合类型的一般形式为 set of 基类型 type 集合类型名称 Set of 基类型 基类型可以为 字符型 布尔型 枚举型和子界型 不能是整型 实型 1集合中的元素是相异的 不重复 2集合中的元素是没有顺序的 3集合中的元素不能超过25
  • Java对象的比较

    在Java中的比较有两种 基本类型之间的比较和引用类型之间的比较 对于基本类型来说 可以进行直接的比较 int long short byte 可以用 lt gt 进行比较 返回值为 true 或者 false char 也是用 lt gt
  • UFT 自动化测试工具

    QTP是一种基于GUI录制的自动化测试工具 用于在回归测试阶段的时候自动批量执行回归测试用例 和HP 的 Loadrunner 差不多 了解过Loadrunner的学起来很轻松 但又有区别 QTP是记录用户浏览器的操作步骤数据等去达到录制回
  • cmd命令行访问远程mysql数据库

    mysql uhello pworld h192 168 1 88 P3306 Dmysql oa mysql u用户名 p密码 h远程数据库IP地址 P端口 D数据库名
  • ElementUI使用按钮进行图片预览

    使用ElementUI组件进行图片预览 Element官网给出的组件为el image组件 该组件是点击图片时进行预览 而我需要的是点击按钮进行预览图片 需求是点击预览按钮后先去请求接口返回图片 等图片返回后直接将图片预览展示 找到了el
  • elasticsearch-索引分片和副本设置

    索引设置 你可以通过修改配置来自定义索引行为 详细配置参照 ref index modules html 索引模块 Tip Elasticsearch 提供了优化好的默认配置 除非你理解这些配置的作用并且知道为什么要去修改 否则不要随意修改
  • 抖音壁纸表情包小程序流量主收益怎么样?

    壁纸小程序源码 后台 注意注意此处是原作者 注意注意此处是原作者 注意注意此处是原作者 抖音壁纸小程序源代码 此次新增和优化功能如下 达人入住 达人审核 收益管理 下载壁纸页面UI优化 素材管理 素材上传 新增抖音图片检测接口 消息通知 达
  • 哈希表(带图解)

    哈希表 常见的搜索方式 1 顺序搜索 O N 2 二分搜索 O log N 3 搜索树结构中的查找 二叉树搜索 O N AVL O log N 红黑树 O log N 以上都需要比较 那有没有不需要比较就能查找的方法呢 概念 顺序结构以及平
  • 前端面试之---link 引入css文件和@import引入css文件的区别

    css引入方式link与import的区别 1 link属于html标签 而 import是css提供的 只能加载CSS2 加载顺序 link在页面加载时被加载 import在页面加载完之后再加载3 link是html标签 因此没有兼容性
  • mysql中进行md5加密

    如果数据库表User中有一列为passwd 存放的是md5加密的数据 如何更新新的数据 update user set passwd md5 123321 where uName lihua 插入新的数据 insert into user
  • JavaScript 入门基础 - 对象(五)

    JavaScript 入门基础 对象 文章目录 JavaScript 入门基础 对象 1 对象 1 1 对象的基本理解 1 2 为什么需要变量 2 创建对象的方式 2 1 利用字面量创建对象 2 2 变量属性函数方法的区别 2 3 利用 n
  • 谷歌浏览器美化包

    下了CSDN浏览器助手后 浏览器竟然直接摊牌了 不装了 一 先言 对于常年混迹于CSDN社区的我来说 社区出了浏览器插件这事我怎么能错过 三下五除二下载使用一波 不得不说 又被圈粉啦 咱也不多说 先看下面张效果图为敬 欧No 这颜值还是我当
  • Python小甲鱼学习笔记01-05

    01开始 一 IDLE 二 print 1 print 的作用是什么 print 会在输出窗口中显示一些文本 在这一讲中 输出窗口就是IDLE shell窗口 2 例子 print 5 2 print well water print go
  • C语言把分钟数转换成小时和分钟

    题目 编写一个程序 把用分钟表示的时间转换成用小时和分钟表示的时间 使用 define或const创建一个表示60的符号常量或const变量 通过while循环让用户重复输入值 直到用户输入小于或等于0的值才停止循环 参考答案 includ
  • 【c++】程序设计第四周作业

    程序设计第四周作业 筛选法找素数 选择排序 输出杨辉三角 矩阵鞍点 折半查找 字符串复制 计算矩阵的和 筛选法找素数 题目描述 用筛选法求n以内 含n n lt 1000 的素数 并逆序输出 每10个一行 输入 n 输出 逆序输出n以内的素
  • (20201126已解决)WSL运行virtualenv venv创建虚拟环境出错

    问题描述 如题 在VS Code WSL中运行virtualenv venv出现下属错误 FileNotFoundError Errno 2 No such file or directory c users name anaconda3
  • Augmenting Existing Data structure 总结

    动态集合是指大小不固定的集合 会增加新的元素和删除已有的元素 队列 堆栈 树 vector map 等都属于动态集合 实现主要就是2种方向 1 基于node的 一维的就是链表 二维的就是二叉树 2 基于数组的 当数组被填满或大于一定的fac
  • Python基础综合案例:折线图可视化

    Python学习 折线图可视化 目录 Python学习 折线图可视化 Json数据格式 pyecharts模块 数据处理 案例 美日印疫情数据折线图 Json数据格式 一种轻量级的数据交互格式 负责在不同编程语言中的数据传递和交互 一种字符