前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >bar3D 的颜色渐变

bar3D 的颜色渐变

作者头像
ZXand618
发布于 2022-04-10 02:03:24
发布于 2022-04-10 02:03:24
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

最近有读者问我 bar3D 颜色渐变的问题,昨天尝试了下,发现 ECharts GL 的 bar3D 似乎不支持 colorStops,似乎也不支持贴图(github 上 2018 年有个 issue 问过,pissang 回答暂不支持,昨天尝试了下也没成功……),于是只好用堆叠柱图凑合一下了。

思路大概是这样:

  1. 把数据拆分成 N 份,比如原本柱子的值是 100,拆成 N 个值为 100 / N 的柱子,叠罗汉
  2. 计算两种颜色的 RGB 数值差,均匀地分配给 N 个柱子

关键代码(颜色计算,N 个 series[i]-bar3D 生成)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function barSeriesInit(color0, color1, barData, step) {
    ret = [];
    
    // 16进制颜色转换成 RGB 颜色,并计算 color0 和 color1 之间的 RGB 差值
    startR = color0.length === 7 ? parseInt(color0.substr(1, 2), 16) : parseInt(color0.substr(1, 1) + color0.substr(1, 1), 16);
    startG = color0.length === 7 ? parseInt(color0.substr(3, 2), 16) : parseInt(color0.substr(2, 1) + color0.substr(2, 1), 16);
    startB = color0.length === 7 ? parseInt(color0.substr(3, 2), 16) : parseInt(color0.substr(2, 1) + color0.substr(2, 1), 16);
    endR = color1.length === 7 ? parseInt(color1.substr(1, 2), 16) : parseInt(color1.substr(1, 1) + color1.substr(1, 1), 16);
    endG = color1.length === 7 ? parseInt(color1.substr(3, 2), 16) : parseInt(color1.substr(2, 1) + color1.substr(2, 1), 16);
    endB = color1.length === 7 ? parseInt(color1.substr(3, 2), 16) : parseInt(color1.substr(2, 1) + color1.substr(2, 1), 16);
    distanceR = endR - startR;
    distanceG = endG - startG;
    distanceB = endB - startB;

    // 把原数据的 value 值变成 1/N 
    stepData = barData.map(function(item) {
        return {
            value: [item[1], item[0], item[2] / step],
        };
    });

    // 生成 N 个 series[i]-bar3D
    for (var i = 0; i <= step; i++) {
        ret.push({
            type: 'bar3D',
            data: stepData,
            stack: 'stack',
            color: '#' + Math.round(startR + i * distanceR / step).toString(16) + Math.round(startG + i * distanceG / step).toString(16) + Math.round(startB + i * distanceG / step).toString(16),

            label: {
                textStyle: {
                    fontSize: 16,
                    borderWidth: 1
                }
            },
            silent: true,
            shading: 'lambert',
        });
    }
    return ret;
}

提示框暂时还没做好……

bar3D 的 tooltip.trigger = 'axis' 不生效,也许不支持,如果真的不支持,可能要重写鼠标事件。最近事情多,顾不上细细研究……有空再看看

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android 动画总结(6) - 估值器
插值器算出属性改变的百分比,Evaluator 估值器根据这个百分比算出属性值。 ArgbEvaluator public class ArgbEvaluator implements TypeEvaluator { private static final ArgbEvaluator sInstance = new ArgbEvaluator(); public static ArgbEvaluator getInstance() { return sInstance;
三流之路
2018/09/11
7620
效果炸了!Android自定义View实现一个炫酷的时钟
要实现的自定义控件效果大致如下,实现过程中用到了比较多的自定义View的API,觉得比较有代表性,就分享出来也当做学习总结 项目代码已上传github :https://github.com/DaLeiGe/AndroidSamples/tree/master/ProgressView
程序员小顾
2021/12/14
8600
Android材料设计之AppBarLayout+CoordinatorLayout
零、前言: AppBarLayout+CoordinatorLayout:废话不多说,Material Design还是用图说话 1.scroll:首子控件吸顶:app:layout_scrollFlags="scroll" 2.exitUntilCollapsed:首子控件半吸顶:app:layout_scrollFlags="scroll|exitUntilCollapsed"+minHeight 3.enterAlways:首子控件吸顶+首子控件先下滑:app:layout_scrollF
张风捷特烈
2018/12/19
2.1K0
bar3D 自定义柱子宽度(厚度)
最近发现 ECharts Galley 里有一条评论,问 bar3D 如何自定义柱子粗细(配置项手册里没有)。
ZXand618
2022/04/10
5340
bar3D 自定义柱子宽度(厚度)
Android动画Animator家族使用指南
零、前言:本文知识点 ValueAnimator的认识与使用 估值器TypeEvaluator的自定义与使用 插值器TimeInterpolator的自定义与使用 Path于Animator的结合使用 ObjectAnimator的自定义与使用 TimeAnimator的使用 AnimatorSet动画集合的使用 Animator家族的监听器介绍与使用 Animator家族在xml中的使用 ---- 一直用动画,貌似还没有好好地总结一下,趁有空,总结一波 所谓动画,就是不停变化,在视觉上达到连续的效果
张风捷特烈
2019/01/02
1.3K0
7.侧滑、ViewDragHelper、属性动画
实现这样的效果: ## 侧滑面板(对ViewGroup的自定义) * 应用场景: 扩展主面板的功能 * 功能实现: > 1. ViewDragHelper: Google2013年IO大会提出的,
六月的雨
2018/05/14
1.1K0
3D 饼环图 label 初步填坑
之前做的 3D 饼环图一直没有数据标签,原因是 series.surface 不支持,此前一直也没有想到凑合实现点思路。
ZXand618
2022/04/10
1.3K0
3D 饼环图 label 初步填坑
前端小知识11点
参考:页面显示LCD液晶字体,特殊字体,@font-face属性详细用法(https://blog.csdn.net/sunshine_han/article/details/78258880)
进击的小进进
2019/12/16
9340
前端小知识11点
设计模式学习之策略模式
**定义:**策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。
老马的编程之旅
2022/06/22
1950
设计模式学习之策略模式
提升开发幸福感的10条JS技巧
鱼头总结一些能够提高开发效率的JS技巧,这些技巧很实用,觉得挺好,想推荐给大家,所以有了这篇文章。
用户1462769
2019/08/20
4160
Vue + Vuex + Element UI实现动态全局主题颜色
经常用Element UI的小伙伴,应该知道,Element UI官方文档,可以自由更换主题。那么,我们怎么把这个功能用到自己项目中呢?其实官方文档也有所说明,这里对其进行更详细,更明确的说明,同时提供简单示例,供大家参考。
Javanx
2019/09/04
4K0
Vue + Vuex + Element UI实现动态全局主题颜色
Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题
首先安装「主题生成工具」,可以全局安装或者安装在当前项目下,推荐安装在项目里,方便别人 clone 项目时能直接安装依赖并启动。
朝雨忆轻尘
2019/06/18
1.5K0
从零开始实现一个颜色选择器(原生JavaScript实现)
首先,我们无需搭建项目的环境,我们还是直接用最简单的方式,也就是引入的方式来创建这个项目,这样也就方便了我们一边编写一边测试。创建一个空目录,命名为ColorPicker,创建一个js文件,即color-picker.js,然后创建一个index.html文件以及创建一个样式文件color-picker.css。现在你应该可以看到你的项目目录是如下所示:
Nealyang
2021/10/27
1.4K0
11 个对开发有帮助的 JS 技巧
有时我们需要打印6分钟前的日期,但不希望很大的库来完成。这里有一个小片段可以做到这一点:
前端小智@大迁世界
2022/03/22
1650
我用 10000 张图片合成我们美好的瞬间
月亮照回湖心 野鹤奔向闲云 1前言 昨天是情人节,大家想必都非常愉快的度过了节日~我也是😚 好了,废话不多说,今天给大家带来是一个比较有意思的项目,通过切割目标图片,获得10000个方块,用我们所选择到的图片,对应的填充方块实现一个千图成像的效果.你可以用它来拼任何你想拼的有意义的大图.(比如我,就想用它把我和对象恋爱到结婚拍的所有照片用来做一个超级超级超级超级大的婚纱照,在老家鄱阳湖的草地上铺着,用无人机高空俯瞰,啧,挺有意思~在这里先埋个点,希望几年后能够实现😊) 首先,这篇文章是基于我的上一篇fabr
秋风的笔记
2021/08/27
5970
我用 10000 张图片合成我们美好的瞬间
jQuery实现可拖动控制进度条
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>jQuery可拖动控制进度条</title> <style type="text/css"> .demo {
王小婷
2021/05/19
5K0
jQuery实现可拖动控制进度条
分享一个从图片中提取色卡的实现
最近在做“在线地图样式配置”的功能的时候,发现百度地图有个功能时上传一张图片,从图片中提取颜色并进行配图。本文就简单实现一下如何从图片中提取色卡。
牛老师讲GIS
2024/12/30
970
分享一个从图片中提取色卡的实现
java数字和中文算数验证码
数字算法 此代码使用了ttf字体 字体在此处 https://gitee.com/tothis/java-record/tree/master/src/main/resources/font
崔笑颜
2020/07/15
1.6K0
java数字和中文算数验证码
HarmonyOS-Codelabs系列挑战之构建你的数据应用
整体上是在官方的Demo基础上做的,这里把官方的Demo放在这里,感兴趣小伙伴可以看看:【JS基础组件】switch、chart的使用
山河已无恙
2023/03/02
2750
11 个对开发有帮助的 JS 技巧,进收藏夹当小词典吧!
最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。
前端小智@大迁世界
2021/03/02
3840
11 个对开发有帮助的 JS 技巧,进收藏夹当小词典吧!
相关推荐
Android 动画总结(6) - 估值器
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文