echarts系列之动态修改柱状图颜色

本文介绍如何在ECharts中根据特定变量动态修改柱状图的颜色,通过配置series参数和自定义颜色函数实现不同版本的数据展示不同颜色的柱状图。

echarts系列之动态修改柱状图颜色

echarts根据某一变量动态修改柱状图颜色

1.option中参数配置项series

 

{
     "name":"Android",
     "type":"bar",
     "data":bData,
     //配置样式
     itemStyle: {   
        //通常情况下:

      normal:{
      // 每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
        color: function (params){
        return barColor()[params.dataIndex];

      }
    }

}

 

2.动态设置颜色的方法

(规则:不同version的柱状颜色不一样)

function barColor(){
                    var colorList = [
                                      '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
                                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0',
                                      '#FFB7DD','#660077','#FFCCCC','#FFC8B4','#550088',
                                      '#FFFFBB','#FFAA33','#99FFFF','#CC00CC','#FF77FF',
                                      '#CC00CC','#C63300','#F4E001','#9955FF','#66FF66',
                                      '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
                                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0',
                                      '#FFB7DD','#660077','#FFCCCC','#FFC8B4','#550088',
                                      '#FFFFBB','#FFAA33','#99FFFF','#CC00CC','#FF77FF',
                                      '#CC00CC','#C63300','#F4E001','#9955FF','#66FF66'
                                     
                                     
                                  ];
                     //console.log(params);
                        console.log(xAxisVersion.reverse());
                        var version_arr = xAxisVersion.reverse();
                        var unique_arr = xAxisVersion.unique();
                        var color_arr=[];
                        console.log(unique_arr);
                        var cur=-1;
                       
                       
                        for(var i=0;i<version_arr.length;i++){
                            cur=-1;
                            for(var j=0;j<unique_arr.length;j++){
                                if(version_arr[i]===unique_arr[j]){
                                    //console.log(version_arr[i],unique_arr[j]);
                                    //console.log(i,j);
                                    cur = j;
                                    break;
                                   
                                }
                             } 
                             
                            if(cur>=0){
                                color_arr.push(colorList[cur]); 
                                //console.log('==='+colorList[cur]);
                            }else{
                                color_arr[i]="#f00";
                            }
                        }
                        
                        color_arr=color_arr.reverse();
                        return color_arr;
                }

 

posted @ 2018-01-05 14:45 _只鱼 阅读( ...) 评论( ...) 编辑 收藏
ECharts动态修改柱状图边框颜色(border color)是一项常见的需求,特别是在数据可视化交互场景中。这可以通过修改 `series` 中的 `itemStyle` 属性来实现。以下是一个详细的实现方法。 ### 方法一:直接修改 `itemStyle.borderColor` 在 ECharts柱状图配置中,可以通过 `series` 中的 `itemStyle` 来控制每个柱子的样式。通过动态更新 `borderColor` 值,可以实现边框颜色的变化。 ```javascript option = { xAxis: { type: 'category', data: ['A', 'B', 'C', 'D'] }, yAxis: { type: 'value' }, series: [{ name: '示例数据', type: 'bar', data: [10, 20, 30, 40], itemStyle: { color: '#5470c6', // 填充颜色 borderColor: '#000', // 初始边框颜色 borderWidth: 2 // 边框宽度 } }] }; ``` ### 方法二:动态更新边框颜色 如果需要根据数据或其他条件动态更改边框颜色,可以通过 JavaScript 动态修改 `option` 对象中的 `borderColor` 值,并重新调用 `setOption` 方法。 ```javascript // 假设 chart 是 ECharts 实例 function updateBorderColor(color) { option.series[0].itemStyle.borderColor = color; chart.setOption(option); } ``` ### 方法三:使用回调函数动态设置颜色 ECharts 支持在 `itemStyle` 中使用回调函数来动态设置颜色。例如,可以根据数据值的大小来调整边框颜色。 ```javascript option = { series: [{ type: 'bar', data: [10, 20, 30, 40], itemStyle: { borderColor: function(params) { // 根据数据值设置边框颜色 return params.value > 25 ? '#ff0000' : '#00ff00'; }, borderWidth: 2 } }] }; ``` ### 方法四:结合 Vue 动态绑定 在 Vue 框架中,可以将 `borderColor` 绑定到组件的响应式数据中,从而实现动态更新。 ```vue <template> <div ref="chart" style="width: 600px; height: 400px;"></div> </template> <script> import * as echarts from 'echarts'; export default { data() { return { borderColor: '#000' }; }, mounted() { this.initChart(); }, methods: { initChart() { const chart = echarts.init(this.$refs.chart); const option = { xAxis: { type: 'category', data: ['A', 'B', 'C', 'D'] }, yAxis: { type: 'value' }, series: [{ name: '示例数据', type: 'bar', data: [10, 20, 30, 40], itemStyle: { color: '#5470c6', borderColor: this.borderColor, borderWidth: 2 } }] }; chart.setOption(option); }, updateBorderColor(color) { this.borderColor = color; this.initChart(); } } }; </script> ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值