使用pyecharts绘制三维柱状图(附调整柱体大小方法)

最近在搞一些项目的可视化工作,学到了一个有意思的库,用来画柱状图不错,把一些用法和细节分享给大家。

先看看效果:

0508e782aacd457b90f0b236782503bd.png

效果还不错吧,最终的结果其实还是以html形式的文件保存的,也就是说可以用浏览器打开,打开后在界面中还有用鼠标拖动角度,调整大小等小功能。

 

那么来看看是怎么实现的。

首先,在Python环境中安装pyecharts库,这一步很简单,只需要在terminal中运行下载指令即可。

pip install pyecharts

下一步就是写代码来绘制需要的柱体了,直接上代码,拿去用吧。

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

# 演示数据
x_data = ['x1','x2','x3','x4']     #x坐标点
y_data = ['y1', 'y1']              #y坐标点
#data中的每一个三元组表示一个柱体信息,以(0,0,5.0)为例,表示x轴上第0个坐标,y轴上第0个坐标对应的柱体高度为5
data = [(0, 0, 5.0), (0, 1, 5.9), (1, 0, 4.8), (1, 1, 5.5), (2, 0, 4.0), (2, 1, 4.9), (3, 0, 3), (3, 1, 4.5)]

# 主体部分
c = (
    Bar3D()

    .add(
        series_name="",
        data=[[d[0], d[1], d[2]] for d in data],
        xaxis3d_opts=opts.Axis3DOpts(data=x_data, type_="category", name='X Label', is_show=True, axislabel_opts=opts.LabelOpts(rotate=30, interval=0)),
        yaxis3d_opts=opts.Axis3DOpts(data=y_data, type_="category", name='Y Label'),
        zaxis3d_opts=opts.Axis3DOpts(type_="value", name='Z Label')
        )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
            max_=10,
            range_color=[
                "#FE2E2E", "#F6D8CE", "#F79F81", "#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8",
                "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"
            ]

        ),
        title_opts=opts.TitleOpts(title="MAE")
        )
    .set_series_opts(
        barSize=15  # 设置柱体宽度
    )
    .render("csdn.html")
)

我在代码中写了一些简单的注释,基本操作一般都够用,如果注释看不懂的或者对一些内置函数用法有疑惑的,可以查阅pyecharts的官方操作文档,链接如下:

简介 - pyecharts - A Python Echarts Plotting Library built with love.

不过,官方文档也有疏漏的地方,例如,在我尝试修改柱体大小时,就发现,官方文档中似乎没有明确写出怎么调整柱体大小,这导致我按照默认画出来的柱体就胖胖的,但不知道怎么调整:

707761bedaf640dd8d6a95b70c28d59a.png

于是我查阅了论坛中大佬的说法,了解到原来还是有办法自定义柱体大小的,只不过大佬就是大佬,提了一句就完事了,连代码都没给,于是又经过一番努力,终于被我弄明白了,觉得有必要写一篇博客记录一下。

方法是使用set_series_opts函数,我在上面的代码里已经写了,利用里面的barSize变量调整柱体的“胖瘦”。

最后,程序运行结果是保存在文件夹中的 .html 文件中哦,打开那个文件就可以看到了,命令框里没有返回不要以为是程序出问题了。

希望能有所帮助!

 

### 创建带有渐变颜色的三维柱状图 在 MATLAB 中创建带渐变颜色的三维柱状图可以通过自定义 `bar3` 函数来实现。具体方法如下: #### 方法概述 为了使每个柱子具有渐变效果,可以利用面对象的颜色属性进行设置。通过循环遍历每一个柱体并为其指定不同的颜色梯度。 #### 实现代码示例 下面是一个简单的例子展示如何绘制这样的图表: ```matlab % 数据准备 Z = peaks(5); % 使用peaks函数生成测试数据矩阵 figure; bh = bar3(Z); % 设置光照和材质以增强视觉效果 lighting gouraud; material dull; hold on; for i = 1:length(bh) zdata = bh(i).ZData; % 获取当前柱形的高度范围 min_z = min(zdata(:)); max_z = max(zdata(:)); % 定义颜色映射表 (这里采用热力图风格) colormap hot; % 对于每一列中的条目应用线性插值后的色彩 for j = 1:size(zdata,2) faceColors = interp1([min_z,max_z],[0;1],zdata(:,j)); %#ok<NASGU> set(bh(i),'CData',faceColors,'FaceColor','interp'); end end colorbar; % 添加颜色栏辅助理解数值对应关系 view(-37.5,30); title('3-D Bar Plot with Gradient Color'); xlabel('X Axis Label'); ylabel('Y Axis Label'); zlabel('Z Axis Value'); ``` 此段脚本首先调用了内置的 `peaks()` 函数作为样本数据源,并通过 `bar3()` 绘制基本图形。接着调整了光源模式 (`gouraud`) 和表面反射特性 (`dull`) 来改善外观质量。最后,在双重循环结构内逐一对各个柱体实施基于高度变化而产生的连续色调过渡处理[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值