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

基于 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为数据科学家和分析师提供了强大的工具,帮助用户更好地理解和展示复杂的数据。

相关文章:

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

文章目录 概述一、日历图和柱状图介绍1. 日历图基本概述2. 日历图使用场景3. 柱状图基本概述4. 柱状图使用场景 二、代码实例1. Pyecharts绘制日历图2. Pyecharts绘制2D柱状图3. Pyecharts绘制3D柱状图 总结 概述 本文将引领读者深入了解数据可视化领域中的两个强大工具&#…...

web应用课——(第四讲:中期项目——拳皇)

代码AC Git地址:拳皇——AC Git链接...

Python爬虫http基本原理

Python爬虫逆向系列(更新中):http://t.csdnimg.cn/5gvI3 HTTP 基本原理 在本节中,我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一…...

iOS17使用safari调试wkwebview

isInspectable配置 之前开发wkwebview的页面的时候一直使用safari调试,毕竟jssdk交互还是要用这个比较方便,虽说用一个脚本插件没问题。不过还是不太方便。 但是这个功能突然到了iOS17之后发现不能用了,还以为又是苹果搞得bug,每…...

二叉树(1)

1 树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…...

ArcGIS Pro字段编号相关代码

字段属于SHP文件的重要组成部分,在某些时候需要对字段进行编号,这里为大家介绍一下字段编号相关的代码,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的POI数据,除了POI数据,常见的GIS数据都可…...

AJAX-URL查询参数

定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据 http://xxxx.com/xxx/xxx?参数名1值1&参数名2值2 axios语法 使用axios提供的params选项 注意:axios在运行时把参数名和值,会拼接到url?参数名值 axios(…...

DBeaver连接ClickHouse,时间少了8小时

文章目录 业务场景问题描述解决办法 业务场景 表字段time,类型为Datetime,插入时间格式为“yyyy-MM-dd HH:mm:ss” 问题描述 插入表中的时间比正常给的时间少了8小时。如,给定时间为: 2024-01-30 14:52:08 在表中显示的时间为&…...

week03day03(文件操作、正则表达式1)

一、文件操作 1.数据持久化(数据本地化) -- 将数据保存在硬盘 程序中的数据默认是保存在运行内存中的,保存在运行内存中的数据在程序运行结束后会自动释放。如果希望在程序结束后,数据仍可以使用&…...

【数据分享】1929-2023年全球站点的逐年最高气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据! 之前我们分享过1929-2023年全球气象站…...

数据结构—基础知识:哈夫曼树

文章目录 数据结构—基础知识:哈夫曼树哈夫曼树的基本概念哈夫曼树的构造算法哈夫曼树的构造过程哈夫曼算法的实现算法:构造哈夫曼树 数据结构—基础知识:哈夫曼树 哈夫曼树的基本概念 哈夫曼(Huffman)树又称最优树&…...

计算机网络(第六版)复习提纲24

3 传输控制协议TCP概述 A TCP最主要的特点 1 面向连接的传输层协议 2 每一条TCP连接只能有两个端点,且只能是点对点的 3 提供可靠交付的服务(无差错、不丢失、不重复、不乱序) 4 全双工通信,两端设有发送缓存和接收缓存 5 面向字节…...

[机器学习]TF-IDF算法

一.TF-IDF算法概述 什么是TF-IDF? 词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)是一种常用于文本处理的统计方法,可以评估一个单词在一份文档中的重要程度。简单来说就是可以用于文档关键词的提…...

Loadbalancer如何优雅分担服务负荷

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Loadbalancer如何优雅分担服务负荷 前言Loadbalancer基础:数字世界的分配大师1. 分发请求:2. 健康检查:3. 会话保持:4. 可伸缩性:5. 负载均衡…...

计算机网络——链路层(1)

计算机网络——链路层(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.…...

OpenCV 0 - VS2019配置OpenCV

1 配置好环境变量 根据自己的opencv的安装目录配置 2 新建一个空项目 3 打开 视图->工具栏->属性管理器 4 添加新项目属性表 右键项目名(我这是opencvdemo)添加新项目属性表,如果有配置好了的属性表选添加现有属性表 5 双击选中Debug|x64的刚添加的属性表 6 (重点)添…...

eCos flash模拟EEPROM实现NV系统

Flash需要擦除的原因&#xff1a;先擦除后写入的原因是为了工业上制作方便&#xff0c;即物理实现方便。 #include <cyg/infra/diag.h> #include <cyg/io/flash.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> // SPI flash…...

【MongoDB】跨库跨表查询(python版)

MongoDB跨表跨库查询 1.数据准备&#xff1a;2.跨集合查询3.跨库查询应该怎么做&#xff1f; 讲一个简单的例子&#xff0c;python连接mongodb做跨表跨库查询的正确姿势 1.数据准备&#xff1a; use order_db; db.createCollection("orders"); db.orders.insertMan…...

Ruoyi-Cloud-Plus_Nacos配置服务漏洞CVE-2021-29441_官方解决方法以及_修改源码解决---SpringCloud工作笔记199

CVE-2021-29441 这个漏洞是Nacos的,通过使用postman,直接访问接口: 就可以直接添加nacos的用户 Nacos是Alibaba的一个动态服务发现、配置和服务管理平台。攻击者通过添加Nacos-Server的User-Agent头部将可绕过(nacos.core.auth.enabled=true)鉴权认证,从而进行API操作。 …...

和鲸科技与智谱AI达成合作,共建大模型生态基座

近日&#xff0c;上海和今信息科技有限公司&#xff08;简称“和鲸科技”&#xff09;与北京智谱华章科技有限公司&#xff08;简称“智谱AI”&#xff09;签订合作协议&#xff0c;双方将携手推动国产通用大模型的广泛应用与行业渗透&#xff0c;并积极赋能行业伙伴探索领域大…...

MPI并行编程避坑指南:实现Cannon算法时,你的进程通信真的高效吗?

MPI并行编程实战&#xff1a;Cannon算法性能调优的五大关键陷阱 当你第一次在集群上运行Cannon算法时&#xff0c;是否遇到过这样的场景&#xff1a;代码逻辑完全正确&#xff0c;计算结果也准确无误&#xff0c;但性能提升却远低于预期&#xff1f;或者更糟——程序莫名其妙地…...

《信息系统项目管理师教程(第4版)》制定项目章程(启动过程组)考点知识结构+10道经典真题

《信息系统项目管理师教程&#xff08;第4版&#xff09;》制定项目章程&#xff08;启动过程组&#xff09;考点知识结构10道经典真题一、制定项目章程&#xff08;启动过程组&#xff09;高频考点知识结构&#xff08;一&#xff09;核心定位&#xff08;必考点&#xff0c;选…...

如何通过EhViewer实现安卓画廊资源高效管理与无缝阅读体验?

如何通过EhViewer实现安卓画廊资源高效管理与无缝阅读体验&#xff1f; 【免费下载链接】EhViewer &#x1f965; A fork of EhViewer, feature requests are not accepted. Forked from https://gitlab.com/NekoInverter/EhViewer 项目地址: https://gitcode.com/GitHub_Tre…...

OpenClaw深度集成:千问3.5-9B作为默认推理引擎

OpenClaw深度集成&#xff1a;千问3.5-9B作为默认推理引擎 1. 为什么选择千问3.5-9B作为默认模型 去年冬天第一次接触OpenClaw时&#xff0c;我花了两周时间反复测试不同模型的适配性。当时用OpenAI的接口虽然方便&#xff0c;但每次截图识别、文件操作都要消耗大量token&…...

OpenClaw异常处理设计:Qwen3.5-9B图片任务失败自动恢复方案

OpenClaw异常处理设计&#xff1a;Qwen3.5-9B图片任务失败自动恢复方案 1. 为什么需要异常处理机制&#xff1f; 上周我尝试用OpenClawQwen3.5-9B实现证件照自动裁剪时&#xff0c;遇到了典型的"三连击"问题&#xff1a;网络波动导致图片上传中断、模型响应超时、输…...

微信接入支付宝内置的openclaw(aclaw)

第一步&#xff1a;领养龙虾第二步&#xff1a;安装微信插件 让 AClaw 执行以下命令&#xff1a; npx -y tencent-weixin/openclaw-weixin-clilatest install将命令发送给 AClaw&#xff0c;效果如图所示&#xff1a;第三步&#xff1a;扫码登录 由于运行环境的限制&#xff0c…...

Qwen3-0.6B-FP8在单片机开发中的启发:生成嵌入式C语言代码片段

Qwen3-0.6B-FP8在单片机开发中的启发&#xff1a;生成嵌入式C语言代码片段 1. 引言 如果你是一位单片机开发者&#xff0c;可能经常遇到这样的场景&#xff1a;面对一个新的外设模块&#xff0c;或者要实现一个不太熟悉的功能&#xff0c;第一反应就是去翻数据手册、找官方例…...

快速上手:CYBER-VISION零号协议Node.js后端服务集成指南

快速上手&#xff1a;CYBER-VISION零号协议Node.js后端服务集成指南 你是不是已经部署好了CYBER-VISION零号协议模型&#xff0c;看着那个命令行界面&#xff0c;心里琢磨着&#xff1a;“这玩意儿怎么才能接到我的Web应用里去&#xff1f;” 别急&#xff0c;这正是我们今天要…...

DeepSeek-OCR-2高级配置:多GPU并行处理优化

DeepSeek-OCR-2高级配置&#xff1a;多GPU并行处理优化 1. 引言 如果你正在处理海量文档&#xff0c;可能会发现单张GPU运行DeepSeek-OCR-2时速度不够理想。一张A100处理复杂文档可能需要几秒钟&#xff0c;当成千上万的文档排队等待时&#xff0c;这个时间就会累积成小时甚至…...

Python原生AOT在2026年终于可用?(官方PEP 718+PyO3 v0.24+Maturin 2.0三重验证实录)

第一章&#xff1a;Python原生AOT编译的里程碑意义与2026年落地全景Python长久以来以解释执行和动态特性见长&#xff0c;但启动延迟、内存开销与冷启动瓶颈严重制约其在边缘计算、嵌入式系统及云原生FaaS场景中的深度应用。2026年&#xff0c;CPython官方正式将原生AOT&#x…...