先来看代码:
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")
)
再来看结果:
再来看解析:
这段代码使用了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
本站只提供常用图表与其解析