使用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 文件中哦,打开那个文件就可以看到了,命令框里没有返回不要以为是程序出问题了。

希望能有所帮助!

 

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值