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

文章目录

  • 概述
  • 一、日历图和柱状图介绍
    • [1. 日历图基本概述](#1. 日历图基本概述)
    • [2. 日历图使用场景](#2. 日历图使用场景)
    • [3. 柱状图基本概述](#3. 柱状图基本概述)
    • [4. 柱状图使用场景](#4. 柱状图使用场景)
  • 二、代码实例
    • [1. Pyecharts绘制日历图](#1. Pyecharts绘制日历图)
    • [2. Pyecharts绘制2D柱状图](#2. Pyecharts绘制2D柱状图)
    • [3. Pyecharts绘制3D柱状图](#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绘制日历图

代码如下(示例):

python 复制代码
# 导入需要的库
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柱状图

代码如下(示例):

python 复制代码
# 导入 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柱状图

代码如下(示例):

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

相关推荐
网易独家音乐人Mike Zhou2 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书2 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小二·4 小时前
java基础面试题笔记(基础篇)
java·笔记·python
小喵要摸鱼5 小时前
Python 神经网络项目常用语法
python
一念之坤6 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
wxl7812277 小时前
如何使用本地大模型做数据分析
python·数据挖掘·数据分析·代码解释器
NoneCoder7 小时前
Python入门(12)--数据处理
开发语言·python
LKID体8 小时前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j
小尤笔记8 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo18 小时前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas