前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bar3D 自定义柱子宽度(厚度)

bar3D 自定义柱子宽度(厚度)

作者头像
ZXand618
发布2022-04-10 10:05:45
4300
发布2022-04-10 10:05:45
举报

最近发现 ECharts Galley 里有一条评论,问 bar3D 如何自定义柱子粗细(配置项手册里没有)。

我用二维柱图的经验尝试了下,「barGap」,发现不行

默认似乎是根据 grid3D 的尺寸自适应的,也就是 grid3D.boxWidth、grid3D.boxDepth 这两个配置项,除以对应轴数据的长度,再留出一定间隔(后来确认到是留 30%,跟二维柱图的默认方式相同)

但是以往经验告诉我,配置项手册通常是 ECharts 功能的子集(没错,ECharts 就是这么的强大而低调,哈哈哈~),于是去源码里搜索了下 grid3D 和 bar3D 相关的内容,有了如下收获:

代码语言:javascript
复制
var barSize = seriesModel.get('barSize');
if (barSize == null) {
    var size = coordSys.size;
    var barWidth;
    var barDepth;
    var xAxis = coordSys.getAxis('x');
    var yAxis = coordSys.getAxis('y');

    if (xAxis.type === 'category') {
        barWidth = xAxis.getBandWidth() * 0.7;
    }
    else {
        // PENDING
        barWidth = Math.round(size[0] / Math.sqrt(data.count())) * 0.6;
    }
    if (yAxis.type === 'category') {
        barDepth = yAxis.getBandWidth() * 0.7;
    }
    else {
        barDepth = Math.round(size[1] / Math.sqrt(data.count())) * 0.6;
    }
    barSize = [barWidth, barDepth];
}
else if (!__WEBPACK_IMPORTED_MODULE_0_echarts_lib_echarts___default.a.util.isArray(barSize)) {
    barSize = [barSize, barSize];
}

所以结论是,可以自定义,通过配置项 series[i]-bar3D.barSize,可传入单个数值或这样的数组 [1, 1] (是绝对值,试了不能传百分比)

测试效果如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZXand618的ECharts之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档