Echarts - 柱状图(Simple Encode) 样式修改

本文详细解析了ECharts图表库的数据可视化配置方法,通过一个具体示例展示了如何设置数据源、提示框样式、坐标轴隐藏、颜色映射等关键配置项,帮助读者掌握ECharts的高级定制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var option = {
    dataset: {
        source: [
            ['score', 'amount', 'product'],
            [89.3, 58212, 'xxxx一二三四五'],
            [57.1, 78254, 'xxx一二四'],
            [74.4, 41032, 'xxxx一三四'],
            [50.1, 12755, 'xxxx二三四'],
            [89.7, 20145, 'xxx一二'],
            [68.1, 79146, 'xxx一四'],
            [19.6, 91852, 'xxx三四'],
            [10.6, 101852, 'xx二三'],
            [32.7, 20112, 'x四']
        ]
    },
    tooltip: {
        trigger: 'axis',
        // 重写提示框内容样式
        formatter: function (params, ticket, callback) {
            var showHtm=params[0].data[2]+'<br>';
            showHtm+= '断点率: ' + params[0].data[0] + '%<br>'
            showHtm+= '断点次数: ' + params[0].data[1] + '<br>'
            return showHtm;
    }
    },
    grid: {containLabel: true},
    xAxis: {
        show:false,
        axisLine:{
            show:false
        },
        axisTick:{
            show:false
        },
        splitLine:{
            show:false
        }
    },
    yAxis: {
        type: 'category',
        axisLine:{
            show:false
        },
        axisTick:{
            show:false
        },
         splitLine:{
            shwo:false
        },
        axisLabel : 
        {
        // 刻度标签的内容格式器
         formatter : function (value)
         {
             let valueTxt = '';
             if (value.length > 7) {
                 valueTxt = value.substring(0, 7) + '...';
             }
             else {
              valueTxt = value;
            }
            return valueTxt ;
            }
        }
    },
    visualMap: {
        orient: 'horizontal',
        left: 'center',
        min: 10,
        max: 100,
        show:false,
        // text: ['High Score', 'Low Score'],
        // Map the score column to color
        dimension: 0,
        inRange: {
            color: ['#bbb', '#000']
        }
    },
    series: [
        {
            type: 'bar',
            label:{
                show:true,
                position:'insideRight',
                formatter:function(params) {
                    return params.value[0]+"%";
                }
            },
            encode: {
                // Map the "amount" column to X axis.
                x: 'amount',
                // Map the "product" column to Y axis
                y: 'product'
            }
        }
    ]
};

### 使用 ECharts 实现分段柱状图 为了实现具有分段效果以及渐变颜色的柱状图,可以采用两种主要的方法: #### 方法一:组合普通柱状图与象形柱状图 这种方法适用于需要精确控制各段位置的情况。具体做法是在同一个图表内绘制两个X轴,其中一个用于实际绘图(设置为不可见),另一个则作为展示用途。 对于给定区间`[-10,-8]`上的六组数据 `[3,5,10,8,9,6]` ,其累积总和达到41,因此各个分段的具体起点分别为 `[3,8,18,26,35]` 。此时可以通过配置 `series` 中的对象数组来定义不同类型的系列项,其中一部分负责渲染基础的渐变色条形区域,另一部分利用象形柱状图描绘出每一段之间的边界线[^1]。 ```javascript option = { xAxis: [ {type: 'value', show: false}, // 隐藏的真实x轴 {type: 'category', data: ['A'], position: 'bottom'} // 显示的假x轴 ], yAxis: [{type: 'value'}], series: [{ name: 'Background', type: 'bar', stack: 'total', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#ffeda0'}, {offset: 1, color: '#f03b20'} ]) }, encode: { x: [0], y: 'value' } }, ... // 添加更多象形柱代表不同的分段 ] }; ``` #### 方法二:多柱状图并列显示 当面对较为简单的场景时,也可以选择创建多个独立的柱状图实例,并借助前端框架中的栅格系统(如Element UI 的 el-row/el-col 组件)来进行排列布局。这种方式下每个单独的小柱子都可以被赋予特定的颜色样式,从而形成视觉上的分隔感[^2]。 然而需要注意的是,此方案可能不适合复杂的应用场合,因为难以做到像前一种方式那样精细地调整相邻片段间的间距或对齐关系。 #### 方法三:两层叠加法 另一种常见的解决方案是构建双层结构—即先画好带有渐变填充的大背景柱体,再在其上方覆盖若干个小尺寸的象形柱表示具体的数值分布情况。这种设计既保持了整体美观度又能清晰表达内部细节信息[^3]。 ```javascript // 渐变大柱体 { name: '', type: 'bar', barWidth: '60%', itemStyle: { normal: { color: function(params){ var colors = ['#C1232B','#B5C334']; return colors[Math.round(Math.random())]; } } }, }, // 小分割层 (象形柱) { name: '', type: 'pictorialBar', symbolSize: [20, 10], symbolOffset: [-10, 0], } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值