Echarts和jQuery的爱恨情仇,Echarts的tooltip格式自定义

后台接口给了四条数据,可视化展示只需要两个,但toolltip里需要展示四个;
需求和最终结果如图所示:
在这里插入图片描述
解决方法,给data里push数组对象的数据,用formatter函数格式化,代码如下:

formatter:function(params){
     console.log('bar',params.data)
     var tipText="";
     params.forEach(function(item,index){
     tipText+=item.data.label1+item.data.value+ item.data.label2+item.data.name+'<br />';
  });

处理tooltip的数据代码:

 				$.each(data, function (i, n) {
                    var temp1 = {
                        label1: '1:',
                        value: parseInt(n.deputyNum),
                        name: n.deputyPercent,
                        label2: ';1占比:'
                    };
                    var temp2 = {
                        label1: '2:',
                        value: parseInt(n.groupNum),
                        name: n.groupPercent,
                        label2: ';2占比:'
                    };
                    name.push(n.period+'届次');
                    data1.push(temp1);
                    data2.push(temp2);

全部代码如下:

function initCenterData() {
        //加载中部数据
        $.ajax({
            url: '/url',
            dataType: 'json',
            success: function (data) {
                console.log(data)
                var data1 = [],
                    data2 = [],
                    data3 = [],
                    data4 = [],
                    type = ['1', '2'],
                    name = [];
                $.each(data, function (i, n) {
                    var temp1 = {
                        label1: '1:',
                        value: parseInt(n.deputyNum),
                        name: n.deputyPercent,
                        label2: ';1占比:'
                    };
                    var temp2 = {
                        label1: '2:',
                        value: parseInt(n.groupNum),
                        name: n.groupPercent,
                        label2: ';2占比:'
                    };
                    name.push(n.period+'届次');
                    data1.push(temp1);
                    data2.push(temp2);
                });
                var chart5 = document.getElementById('tascfl');
                var myChart5 = echarts.init(chart5);
                var colors5 = ['#48aead', '#cc4c5b'];
                var option5 = {
                    color: colors5,
                    tooltip: {
                        trigger: 'axis',
                        //提示文字
                        formatter:function(params){
                            console.log('bar',params.data)
                            var tipText="";
                            params.forEach(function(item,index){
                                tipText+=item.data.label1+item.data.value+ item.data.label2+item.data.name+'<br />';
                            });
                            return tipText;
                        }
                    },
                    grid: {
                        right: '12%',
                        left: '12%',
                        bottom: '10%'
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: {
                                alignWithLabel: true
                            },
                            axisLabel: {
                                color: "#ffffff",
                            },
                            data: name
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value',
                            name: '1',
                            min: 0,
                            position: 'left',
                            axisLine: {
                                show: true,
                                lineStyle: {
                                    color: colors5[0]
                                }
                            },
                            axisLabel: {
                                formatter: '{value}'
                            }
                        },
                        {
                            type: 'value',
                            name: '2',
                            min: 0,
                            position: 'right',
                            axisLine: {
                                show: true,
                                lineStyle: {
                                    color: colors5[1]
                                }
                            },
                            axisLabel: {
                                formatter: '{value} '
                            }
                        },
                    ],
                    series: [
                        {
                            name: '1',
                            type: 'bar',
                            data: data1,
                            itemStyle: {
                                normal: {
                                    barBorderRadius:[8, 8, 0, 0]
                                }
                            },
                            label: {
                                show: true,
                                position: 'top'
                            },
                        },
                        {
                            name: '2',
                            type: 'bar',
                            yAxisIndex: 1,
                            data: data2,
                            itemStyle: {
                                normal: {
                                    barBorderRadius:[8, 8, 0, 0]
                                }
                            },
                            label: {
                                show: true,
                                position: 'top'
                            },
                        },
                    ]
                };
                myChart5.setOption(option5);
            }
        })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值