基于 Echarts 的 Python 图表库:Pyecahrts交互式的日历图和3D柱状图

文章目录

  • 概述
  • 一、日历图和柱状图介绍
    • 1. 日历图基本概述
    • 2. 日历图使用场景
    • 3. 柱状图基本概述
    • 4. 柱状图使用场景
  • 二、代码实例
    • 1. Pyecharts绘制日历图
    • 2. Pyecharts绘制2D柱状图
    • 3. Pyecharts绘制3D柱状图
  • 总结


概述

本文将引领读者深入了解数据可视化领域中的两个强大工具:Python 编程语言和 Pyecharts 库。我们将详细探讨如何使用 Pyecharts 创建令人印象深刻的柱状图和日历图,通过展示数据之美,提高信息传达的效果。


一、日历图和柱状图介绍

1. 日历图基本概述

日历图是一种用于展示时间数据的独特而强大的数据可视化工具。它以日历的形式呈现数据,让用户可以直观地看到时间的分布和趋势。在 Pyecharts 中,通过使用 Calendar 类,可以轻松地创建日历图。

日历图的特点:
1、时间视觉化: 将时间数据与日历的格子相对应,形成一种直观的时间分布视觉效果。

2、数据呈现: 每个日期格子内可以用颜色、大小等视觉元素来表示相应日期的数据,使得用户能够快速理解数据的高低、变化趋势。

3、周期性分析: 适合展示时间数据的周期性,例如每周、每月或每年的数据波动。

2. 日历图使用场景

1、时间分布可视化: 日历图适用于展示时间数据的分布情况。通过不同日期的颜色深浅或大小变化,可以直观地了解时间上的数据波动和趋势。

2、周期性数据: 当数据具有明显的周期性,例如每日、每周或每月的变化规律时,日历图能够清晰地呈现这种周期性。

3、事件发生频率: 如果你想了解某个事件在一段时间内的发生频率,并希望通过时间轴来展示这一信息,日历图是一个有效的选择。

4、节假日统计: 用于展示节假日的分布情况,对于某些业务场景,特定日期的数据可能会显著不同,日历图可以有效地呈现这些特殊日期。

3. 柱状图基本概述

柱状图是一种常用于展示各类数据的图表类型,它通过矩形的高度来表示不同类别或组的数值大小,以便于比较各组之间的差异和趋势。在 Pyecharts 中,使用 Bar 类可以轻松创建各种类型的柱状图。

柱状图的特点:
1、比较数据: 适用于比较不同组别之间的数据差异,通过柱子的高度可以直观地看出各组数据的相对大小。

2、分类展示: 通常用于呈现离散的、有限的类别数据,每个柱子代表一个类别或组。

3、趋势分析: 可以通过多组柱状图的排列和颜色等方式,展示数据的趋势和变化。

4. 柱状图使用场景

1、比较数据大小: 柱状图是比较不同组别或类别之间数据差异的理想选择。通过柱子的高度,用户可以直观地看到各组数据的相对大小。

2、趋势分析: 用于展示数据的变化趋势,特别是在时间序列中,柱状图可以清晰地呈现数据的上升或下降趋势。

3、分类展示: 柱状图通常用于呈现有限的、离散的类别数据,每个柱子代表一个类别或组。

4、部分和整体的关系: 如果你想比较各组数据与整体的关系,例如占比或分布情况,柱状图能够有效地展示这种关系。

5、堆叠柱状图: 适用于同时展示总体数值和各个部分之间的比例关系,以及各个部分的总体趋势。


二、代码实例

1. Pyecharts绘制日历图

代码如下(示例):

# 导入需要的库
import datetime
import random# 导入 Pyecharts 中的相关模块
from pyecharts import options as opts
from pyecharts.charts import Calendar# 定义起始和结束日期
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)# 生成模拟数据,每一天的步数随机生成
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]for i in range((end - begin).days + 1)
]# 创建 Calendar 图
c = (Calendar()# 添加数据和配置,指定时间范围为2017年.add("", data, calendar_opts=opts.CalendarOpts(range_="2017")).set_global_opts(# 设置图表标题title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"),# 配置视觉映射visualmap_opts=opts.VisualMapOpts(max_=20000,min_=500,orient="horizontal",is_piecewise=True,pos_top="230px",pos_left="100px",),)# 渲染并保存为HTML文件.render("calendar_base.html")
)


2. Pyecharts绘制2D柱状图

代码如下(示例):

# 导入 Pyecharts 中的相关模块和 Faker 模块
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker# 创建 Bar 图实例
c = (Bar()  # 创建 Bar 图.add_xaxis(Faker.days_attrs)  # 添加 x 轴数据,使用 Faker 模块生成的日期数据.add_yaxis("商家A", Faker.days_values, color=Faker.rand_color())  # 添加 y 轴数据,商家A的数据,设置颜色.set_global_opts(title_opts=opts.TitleOpts(title="Bar-DataZoom(inside)"),  # 设置图表标题datazoom_opts=opts.DataZoomOpts(type_="inside"),  # 配置数据缩放选项,类型为"inside").render("bar_datazoom_inside.html")  # 渲染并保存为HTML文件
)

pyecharts柱状图

3. Pyecharts绘制3D柱状图

代码如下(示例):

# 导入 random 模块和 Pyecharts 中的相关模块
import random
from pyecharts import options as opts
from pyecharts.charts import Bar3D# 定义 x 和 y 轴数据
x_data = y_data = list(range(10))# 定义生成数据的函数
def generate_data():data = []for j in range(10):for k in range(10):value = random.randint(0, 9)data.append([j, k, value * 2 + 4])return data# 创建 Bar3D 图实例
bar3d = Bar3D()# 循环添加数据,生成10层堆叠柱状图
for _ in range(10):bar3d.add("",generate_data(),shading="lambert",  # 设置光照效果为 Lambertxaxis3d_opts=opts.Axis3DOpts(data=x_data, type_="value"),  # x 轴配置yaxis3d_opts=opts.Axis3DOpts(data=y_data, type_="value"),  # y 轴配置zaxis3d_opts=opts.Axis3DOpts(type_="value"),  # z 轴配置)# 设置全局选项
bar3d.set_global_opts(title_opts=opts.TitleOpts("Bar3D-堆叠柱状图示例"))# 设置系列选项,堆叠模式为 "stack"
bar3d.set_series_opts(**{"stack": "stack"})# 渲染并保存为 HTML 文件
bar3d.render("bar3d_stack.html")

3d柱状图


总结

在使用Pyecharts绘制2D和3D柱状图以及日历图时,通过简单而强大的接口,我们能够轻松定制图表外观,呈现数据的分布和趋势。3D柱状图生动展示数据在三维空间中的关系,而日历图则清晰展示时间轴上的数据变化。通过调整参数、定制图表样式,以及利用交互功能,我们能够创建具有吸引力和信息密度的可视化图表,有效传达数据。Pyecharts为数据科学家和分析师提供了强大的工具,帮助用户更好地理解和展示复杂的数据。

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

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

相关文章

关于VxTerm有可能通过SSH协议默认情况下不能正常连接华为S5735交换机的解决办法

此方法为网友:刘春(QQ282867758)多次测试后找到的解决办法。 在此感谢他!谢谢! 默认情况下,VxTerm与S5735建立SSH连接时采用的Kex Exchange算法为:diffie-hellman-group-exchange-sha256&…

Python使用fastAPI实现一个流式传输接口

1. 使用fastapi实现流式传输 1.1 服务端 fastapi_server.py 编写服务端代码fastapi_server.py。服务端代码主要使用了fastapi和uvicorn两个库。 #!/usr/bin/env python # codingutf-8 # Time : 2024/1/31 19:13 # Software: PyCharm from fastapi import FastAPI from fa…

大数据 - Hadoop系列《三》- MapReduce(分布式计算引擎)概述

上一篇文章: 大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述-CSDN博客 目录 12.1 针对MapReduce的设计构思 1. 如何对付大数据处理场景 2. 构建抽象编程模型 3. 统一架构、隐藏底层细节 12.2 分布式计算概念 12.3 MapReduce定义…

如何通过CVE漏洞编码找到对应的CVE漏洞详情及源码修改地址

背景: 最近正在使用docker进行一些cve漏洞的复现,有时候就要通过CVE的漏洞编码,找到对应的漏洞详情,以及漏洞的源码修改 以我上一篇文章的CVE-2020-17518编码为例 Apache Flink文件上Apache Flink文件上 方法: 通…

手写分布式存储系统v0.2版本

引言 上回说到 手写分布式存储系统v0.1版本 ,已经实现了通过监听TCP端口并将数据写到本地磁盘的功能,今天咱们就继续往上面添砖加瓦 v0.2版本大致做以下功能 实现滚动写文件 代码优化 一、滚动写文件实现 由于咱们写文件是用的mmap进行文件写入&am…

解决ModuleNotFoundError: No module named ‘pysqlite2‘

目录 一、问题描述 二、问题分析 三、解决方法 四、参考文章 一、问题描述: 新建conda编译环境。安装Jupyter后打不开,报错: 二、问题分析: 缺少sqlite3动态链接库 三、解决方法: SQLite Download Page 下载…

数字地球开放平台农作物长势监测解决方案

利用遥感技术进行产量预测是一种高效而准确的方法,通过监测植被的生长状况、土地利用、气象等因素,可以为农业决策提供有力支持。数字地球开放平台拥有200颗卫星,为您提供一站式卫星遥感服务。 数字地球开放平台将为您介绍一般遥感技术在农作…

游戏开发丨基于Panda3D的迷宫小球游戏

文章目录 写在前面Panda3D程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于panda3d的迷宫中的小球游戏 所需环境 pythonpycharm或anacondapanda3d 下载地址 https://download.csdn.net/download/m0_68111267/88792121 Panda3D Panda3D是一种开放源代码…

如何选择最适合的服务器

许多朋友想做一些网站,应用,游戏,小程序等等,都需要接触一个基础,就是服务器。服务器相当于一台24小时不关机的联网电脑,浏览网页或者应用相当于用户在访问这台电脑里的文件。那么如何选择最适合自己的服务…

【Java 数据结构】对象的比较

Java中对象的比较 1. PriorityQueue中插入对象2. 元素的比较2.1 基本类型的比较2.2 对象比较的问题 3. 对象的比较3.1 覆写基类的equals3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比 4. 集合框架中PriorityQueue的比较方式5. 使用PriorityQueue创建大小堆…

【AI_Design】Midjourney学习笔记

目录 后缀解析Promot合格使用prompt关键词描述 关键词化合作用关键词网站推荐 联合Chatgpt使用总结 后缀解析 –ar:宽高比设置–c:多样性设置(数值0-100,默认值0)–s:风格化设置(数值0-1000&am…

Java面试——计网篇

一、基础篇 1、 TCP/IP 网络模型 对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所以要兼容多…

结构体--共用体--枚举 之难点——链表 奋力学习嵌入式的第十六天

结构体 注意: 1.结构体类型 可以定义在 函数里里面 但是此时作用域就被限定在该函数中 2.结构体定义形式 //形式一 限定一类型 后定义变量 struct stu { ... }; struct stu s; //形式二 定义类型的同时 定义变量 struct stu { ... }s1,s2,*s3,s4[10]; struc…

影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)

电影院订票选座小程序目录 目录 基于微信小程序的电影院购票系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能实现 2、管理员功能实现 (1)影院信息管理 (2)电影信息管理 (3)已…

STM32F1 - 存储器映射

Memory mapping 1> 外设内存地址映射2> GPIO寄存器映射3> 存储器访问 1> 外设内存地址映射 1> STM32F103ZET6的地址线位宽为32位,所以寻址空间为4GB (2 ^ 32 4GB); 2> STM32将,Flash,SR…

PageHelper.startPage(pageNum, pageSize);分页总数不正确,避坑!

今天在调用一个查询列表的接口时,分页总数老是查的不正确: 当pageSize选择10时,总数只有10条 当pageSize选择20时,总数只有15条 实际上总数为15条实在正确的,然后取看代码: Overridepublic AjaxResult pro…

中科大计网学习记录笔记(四):Internet 和 ISP | 分组延时、丢失和吞吐量

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

32GPIO输入&按键控制LED&光敏控制蜂鸣器

目录 一.硬件 二.硬件电路 三.C语言基础 四.代码实现 1.按键控制LED (1)自己的代码逻辑 (2)视频的代码逻辑 2.光敏控制蜂鸣器 一.硬件 光线越强,光敏电阻的阻值越小 温度越高,热敏电阻的阻值就越小 红外光线越强,红外接收管的阻值就…

Android super.img解包和打包指南(含工具下载lpunpack、lpmake、lpdump)

本文所有命令均需要在linux 上执行 一、解包 1、将Android sparse image格式的super.img转成二进制文件 $ sudo apt install android-sdk-libsparse-utils $ simg2img super.img super.img.bin 2、下载工具lpunpack 和lpmake、lpdump 以及其依赖库 下载地址:https://downl…

vite, vue3, vue-router, vuex, ES6学习日记

学习使用vitevue3的所遇问题总结&#xff08;2024年2月1日&#xff09; 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default…