Search code examples
echarts

how to add formatter tooltip in echart for multiple values for pie diagram


I am using echart pie diagram but I want to show multiple records in tooltip.

option = {
    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b} : {c} ({d}%), <br/>{name1} : {value1} '
    },
    legend: {
        orient: 'vertical',
        left: 'left',
        data: ['aa', 'bb', 'cc', 'dd', 'ee']
    },
    series: [
        {
            name: 'text name',
            type: 'pie',
            radius: '55%',
            center: ['50%', '60%'],
            data: [
                {value: 335, name: 'aa',value1: 335, name1: 'xx'},
                {value: 310, name: 'bb',value1: 335, name1: 'yy'},
                {value: 234, name: 'cc',value1: 335, name1: 'zz'},
                {value: 135, name: 'dd',value1: 335, name1: 'ww'},
                {value: 1548, name: 'ee',value1: 335, name1: 'vv'}
            ],
        }
    ]
};

I have tried with this formatter: '{a}
{b} : {c} ({d}%),
{e} : {f} ({g}%)' and '<%=name%>:<%= value %><%\n%><%=name1%>:<%= value1%><%\n%><%=name2%>:<%= value2 %>' this link :https://echarts.apache.org/examples/en/editor.html?c=pie-simple

enter image description here


Solution

  • If you want to customize the tooltip then you can use a callback function for formatter property and access all the related data. I have created a demo for you, please let me know if you face any issue.

    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));
    
    option = {
      tooltip: {
        trigger: 'item',
        formatter: function (params) {
          
          return `${params.seriesName}<br />
                  ${params.name}: ${params.data.value} (${params.percent}%)<br />
                  ${params.data.name1}: ${params.data.value1}`;
        }
      },
      legend: {
        orient: 'vertical',
        left: 'left',
        data: ['aa', 'bb', 'cc', 'dd', 'ee']
      },
      series: [{
        name: 'text name',
        type: 'pie',
        radius: '55%',
        center: ['50%', '60%'],
        data: [{
            value: 335,
            name: 'aa',
            value1: 335,
            name1: 'xx'
          },
          {
            value: 310,
            name: 'bb',
            value1: 335,
            name1: 'yy'
          },
          {
            value: 234,
            name: 'cc',
            value1: 335,
            name1: 'zz'
          },
          {
            value: 135,
            name: 'dd',
            value1: 335,
            name1: 'ww'
          },
          {
            value: 1548,
            name: 'ee',
            value1: 335,
            name1: 'vv'
          }
        ],
      }]
    };
    
    // use configuration item and data specified to show chart
    myChart.setOption(option);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/3.7.2/echarts.min.js"></script>
    <div id="main" style="width: 600px;height:400px;"></div>