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

news2024/11/24 4:39:16

文章目录

  • 概述
  • 一、日历图和柱状图介绍
    • 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",  # 设置光照效果为 Lambert
        xaxis3d_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.coloradmin.cn/o/1424876.html

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

相关文章

【2024全网最详细】Google 搜索命令终极指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 你是否尝试过使用 Google 搜索作为免费的 SEO …

【解刊】审稿人极其友好!中科院2区SCI,3个月录用,论文质量要求宽松!

计算机类 • 高分快刊 今天带来Springer旗下计算机领域高分快刊,有投稿经验作者表示期刊审稿人非常友好,具体情况一起来看看下文解析。如有投稿意向可重点关注: 01 期刊简介 Complex & Intelligent Systems ✅出版社:Sprin…

“互联网+水务”——智慧水务2.0推动水务行业产业结构变革

结合国内外水务企业数字化经典实践,探讨智慧水务2.0发展趋势,思考未来“标准体系数字资产使能技术”数字水务的发展态势,为我国水务企业制定和实施有效的数字化转型战略提供参考和借鉴。 通过数据清洗工作,识别并改善数据重复、数…

Linux useradd、gpasswd、chmod 等关于用户及权限设置

创建用户 useradd zen01 useradd zen02 useradd zen03 创建组 groupadd dev-group 把用户添加到dev-group组中 gpasswd -a zen01 dev-group gpasswd -a zen02 dev-group gpasswd -a zen03 dev-group 查看 dev-group组中用户列表 grep ‘dev-group’ /etc/group 创建文件 mkdir…

【go语言】error 错误处理详解

前言 在软件开发中,错误码是一种重要的信息传递方式,对于开发者和用户都具有重要的意义。一般情况下,系统出现故障,由运维在狂轰滥炸的报警信息中找到关键错误信息和研发人员进行沟通,再查看代码逻辑理清问题根源&…

dolist案例实现

这段代码是一个使用Vue.js实现的简单的ToDoList&#xff08;待办事项列表&#xff09;应用。我们分几个部分详细解释这段代码。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>todolist</title&g…

算法练习01——哈希部分双指针

目录 1. 两数之和(*)242. 有效的字母异位词(easy)49. 字母异位词分组(*)349. 两个数组的交集202. 快乐数(1.使用Set存哈希&#xff0c;2.快慢指针)454. 四数相加 II383. 赎金信15. 三数之和*(双指针)18. 四数之和*(双指针)128. 最长连续序列 1. 两数之和(*) https://leetcode.…

Acwing---797.差分

差分 1.题目2.基本思想3.代码实现 1.题目 输入一个长度为 n n n 的整数序列。 接下来输入 m m m 个操作&#xff0c;每个操作包含三个整数 l , r , c l,r,c l,r,c&#xff0c;表示将序列中 [ l , r ] [l,r] [l,r] 之间的每个数加上 c c c。 请你输出进行完所有操作后的…

2024新利好!一文读懂Shopee 3PF PFF一店多运模式

2023年年底&#xff0c;Shopee平台又有大动作&#xff01;正式上线了3PF PFF一店多运模式&#xff0c;已完成库存管理模式升级的三方仓卖家&#xff0c;即可开启一店多运新模式。 图源&#xff1a;Shopee 一、3PF PFF模式优势解析 三方仓一店多运&#xff08;3PF PFF&#xf…

什么可以用手机蓝牙控制LED???#串口通信【下】

什么可以用手机蓝牙控制LED&#xff1f;&#xff1f;&#xff1f;#串口通信【下】 前言预备知识1.小白玩串口控制的ASSII避坑1.1问题引入1.2解决问题 2.串口支持单词型指令控制2.1实现串口支持单词型指令控制的核心思路2.2利用字符数组来承接单词型指令2.3利用strstr函数来查找…

【Java程序设计】【C00202】基于(JavaWeb+SSM)的信访管理系统(论文+PPT)

基于&#xff08;JavaWebSSM&#xff09;的信访管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的信访管理系统 本系统分为管理员、信访人员和工作人员3个功能模块。 管理员&#xff1a;管理员登录进入信访管理系…

从0到1入门C++编程——06 类和对象之多态、文件操作

文章目录 多态1.多态基本概念2.多态案例——计算器3.纯虚函数和抽象类4.多态案例——制作饮品5.虚析构和纯虚析构6.多态案例——电脑组装 文件操作1.文本文件--写文件2.文本文件--读文件3.二进制文件--写文件4.二进制文件--读文件 多态 1.多态基本概念 多态是C面向对象的三大…

RHEL 9上创建本地Yum/DNF存储库

1.挂载RHEL9 ISO文件或DVD 我们假设RHEL 9 iso文件已经复制到系统中。运行以下mount 命令将 ISO文件挂载到/var/repo文件夹。 $ sudo mkdir /var/repo $ sudo mount -o loop rhel-baseos-9.0-x86_64-dvd.iso /var/repo/ 如果是 DVD,请运行 $ sudo mount /dev/sr0 /var/repo/…

系统架构设计师-22年-下午答案

系统架构设计师-22年-下午答案 更多软考知识请访问 https://ruankao.blog.csdn.net/ 试题一必答&#xff0c;二、三、四、五题中任选两题作答 试题一 (25分) 说明 某电子商务公司拟升级其会员与促销管理系统&#xff0c;向用户提供个性化服务&#xff0c;提高用户的粘性。…

代码随想录 Leetcode669. 修剪二叉搜索树

题目&#xff1a; 代码(首刷看解析 2024年1月31日&#xff09;&#xff1a; class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if (!root) return root;if (root->val < low) {TreeNode* node trimBST(root->right,low,high);return…

【Linux】yum与vim命令详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——Linux学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读1. yum命令1.1 基本使用1.2 注意事项1.3 lrzsz软件包示例 2. vim命令2.1 vim的基本概念2.2 vim配置2.3 vim的基本操作2.3…

远程电脑解决突然无法的复制粘贴问题

方法一 - 重新启动RDP剪贴板 结束掉剪切板服务 创建新任务rdplclip.exe任务 重新复制粘贴&#xff0c;即可解决 方法二&#xff1a; 重新启动 Windos 资源管理器 方法三&#xff1a;设置远程桌面连接的本地资源配置&#xff0c;勾选剪切板服务&#xff0c;并在详细信息中勾选…

如何用 python +ddt+excel 实现接口自动化测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “ 接口自动化测试是指通过编写代码或使用工具&#xff0c;模拟…

计算机网络——网络层(3)

计算机网络——网络层&#xff08;3&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)1 网络层——控制平面因特网中自治系统内部的路由选择总括考虑因素总结 ISP之间的路由选择&#xff1a;BGP考虑因素总结 SDN控制层面重要组件和功能总结 ICMP主要功能和特点…

Mysql单行函数练习

数据表 链接&#xff1a;https://pan.baidu.com/s/1dPitBSxLznogqsbfwmih2Q 提取码&#xff1a;b0rp --来自百度网盘超级会员V5的分享 单行函数练习 单行函数(一行数据返回一个结果) #1.显示系统时间(注:日期时间) #2.查询员工工号,姓名,工资以及提高百分之20后的结果(new…