echars柱状图怎么每个柱子设置不同颜色

需求引出

在有的时候,我们需要给柱状图的每根柱子设置不同的颜色,或者是每几个柱子设置不同的颜色,如下图所示:

方法一

在 series 下 data 同级别中,增加一个 itemStyle 对象的属性,给color 返回一个数组

如下代码所示:

javascript 复制代码
    series: [
      {
        data: [10, 30, 20, 14, 23, 32, 34],
        //设置每个柱子不同的颜色
        itemStyle: {
          color: function (params) {
            // 根据params的
            const colorsMap = [
              '#4FE773',
              'red',
              'blue',
              '#CAC8CA',
              'yellow',
              'pink',
              'rgb(10,58,6)'
            ]
            //返回对应的颜色
            return colorsMap[params.dataIndex]
          }
        },
        type: 'bar',
        showBackground: true,
        color: '#4FE773',
        backgroundStyle: {
          color: 'rgba(180, 180, 180, 0.2)'
        }
      }
    ]

方法二

给 itemStyle 设置 normal 对象,每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组

代码如下:

javascript 复制代码
        itemStyle: {
          normal: {
            //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
            color: function (params) {
              var colorList = [
                'rgb(164,205,238)',
                'rgb(42,170,227)',
                'rgb(25,46,94)',
                'rgb(195,229,235)'
              ]
              return colorList[params.dataIndex]
            }
          }
        },

每根柱子随机颜色

我们可以使用 Math.random() 根 rgb 的模式随机生成颜色给每一个柱子

代码如下:

javascript 复制代码
        itemStyle: {
          color: function () {
            return (
              '#' +
              Math.floor(Math.random() * (256 * 256 * 256 - 1)).toString(16)
            )
          }
        },
相关推荐
暴富的im5 小时前
echarts的折线图实现部分虚线部分实线
前端·javascript·echarts
无言非影17 小时前
【笔记】echarts图表的缩放和鼠标滚动冲突的处理解决方案
前端·javascript·笔记·echarts
*neverGiveUp*20 小时前
02.可视化大屏分解动画
前端·vue·css3
刚刚好ā1 天前
uni-app uni-data-picker级联选择器无法使用和清除选中的值
前端·vue.js·uni-app·vue
PeterJXL1 天前
VuePress介绍
vue·博客·博客搭建·vuepress
易墨1 天前
中台框架模块开发实践-用 Admin.Core 代码生成器生成通用代码生成器的模块代码
vue·.net core·代码生成·zhontai·admin.core
小朱爱开发2 天前
Websocket解析及用法(封装一个通用订阅发布主题的webSocket类)
网络·websocket·网络协议·vue
极客先躯2 天前
浏览器自动填充登录用户名和密码,如何清除
javascript·elementui·vue·浏览器·用户名和密码管理
攻城狮_Dream2 天前
【已发布】可视化旅游推荐系统的设计与实现+代码
python·echarts·旅游·python3.11·推荐
狂野小青年2 天前
利用微信开放标签<wx-open-launch-weapp>在H5中跳转微信小程序报错完美的解决方案
java·前端·javascript·微信小程序·uni-app·vue