[图表]pyecharts-3D柱状图

先来看代码:

import random

from pyecharts import options as opts
from pyecharts.charts import Bar3D
from pyecharts.faker import Faker


data = [(i, j, random.randint(0, 12)) for i in range(6) for j in range(24)]
c = (
    Bar3D()
    .add(
        "",
        [[d[1], d[0], d[2]] for d in data],
        xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="category"),
        yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="category"),
        zaxis3d_opts=opts.Axis3DOpts(type_="value"),
    )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(max_=20),
        title_opts=opts.TitleOpts(title="Bar3D-基本示例"),
    )
    .render("bar3d_base.html")
)

再来看结果:

[图表]pyecharts-3D柱状图-LMLPHP
[图表]pyecharts-3D柱状图-LMLPHP
[图表]pyecharts-3D柱状图-LMLPHP
[图表]pyecharts-3D柱状图-LMLPHP

再来看解析:

这段代码使用了Python中的pyecharts模块来创建一个3D柱状图,并使用Faker模块生成了一些假数据。

首先,导入了需要的模块:

  • random:用于生成随机数的模块
  • opts:包含一些图表配置选项的模块
  • Bar3D:用于创建3D柱状图的类
  • Faker:用于生成假数据的类

接下来,定义了一个二维列表data,其中包含了坐标和高度信息。通过两个循环生成了一系列坐标点,并随机生成了高度信息:

data = [(i, j, random.randint(0, 12)) for i in range(6) for j in range(24)]

然后,创建了一个Bar3D对象,并使用add方法添加数据。这里通过列表推导式将data中的数据转换成可接受的格式:

    .add(
        "",
        [[d[1], d[0], d[2]] for d in data],
        xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="category"),
        yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="category"),
        zaxis3d_opts=opts.Axis3DOpts(type_="value"),
    )

使用空字符串作为系列名称,将坐标和高度数据传递给add方法。在此处,使用[[d[1], d[0], d[2]] for d in data]将坐标数据的顺序调整为[x, y, z]的形式。

接着,使用set_global_opts方法设置全局选项,这里设置了可视化映射的选项visualmap_opts的最大值为20,并设置图表的标题为"Bar3D-基本示例":

    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(max_=20),
        title_opts=opts.TitleOpts(title="Bar3D-基本示例"),
    )

最后,使用render方法将图表渲染为一个HTML文件,并保存为"bar3d_base.html":

    .render("bar3d_base.html")

整个过程中,每个方法调用都返回了当前对象,所以可以使用链式调用的方式来依次添加数据和配置。最终,调用render方法将图表渲染为HTML文件。通过设置坐标轴和高度信息,实现了3D柱状图的生成。

注:图表资源来源于:
pyecharts-gallery
本站只提供常用图表与其解析

06-04 02:12