在图例悬停时触发echarts饼图并显示数据

拉兰

在echarts中,通常当我将鼠标悬停在一个切片上时,我可以看到序列名称,值,百分比和...,但是当鼠标在图例上时,只会选择该切片并将其稍微抬起。当鼠标位于图例部分中切片的名称上时,我也希望看到此信息。

https://www.echartsjs.com/examples/zh-CN/editor.html?c=pie-simple

谢谢。

雷蒙德

您需要按照自己的格式在图例中自定义工具提示,如

https://www.echartsjs.com/en/option.html#tooltip.formatter

您可以function (params)legend.tooltip.formatter

但是params仅包含以下值:

{
  "componentType": "legend",
  "legendIndex": 0,
  "name": "直接访问",
  "$vars": [
    "name"
  ]
}

因此,我使用了find函数来获取相应的数据。

tooltip: {
      trigger: 'item',
      formatter: function(params) {
        let datum = mydata.find(d => d.name == params.name)
        return '' + datum.name + ' : ' + datum.value + ' (' + (datum.value / sum * 100).toFixed(2) + '%)';
      },
      show: true
    }

let myChart = echarts.init(document.getElementById('myChart'));

const mydata = [
  {value: 335, name: '直接访问'},
  {value: 310, name: '邮件营销'},
  {value: 234, name: '联盟广告'},
  {value: 135, name: '视频广告'},
  {value: 1548,name: '搜索引擎'}
];

const sum = mydata.reduce(function(prev, current) {
  return prev + current.value
}, 0);

let myChartOption = {
  tooltip: {
    trigger: 'item',
    formatter: '{a} <br/>{b}: {c} ({d}%)'
  },
  legend: {
    orient: 'vertical',
    left: 10,
    tooltip: {
      trigger: 'item',
      formatter: function(params) {
        let datum = mydata.find(d => d.name == params.name)
        return '' + datum.name + ' : ' + datum.value + ' (' + (datum.value / sum * 100).toFixed(2) + '%)';
      },
      show: true
    }
  },
  series: [{
    name: '访问来源',
    type: 'pie',
    radius: ['50%', '70%'],
    avoidLabelOverlap: false,
    label: {
      normal: {
        show: false,
        position: 'center'
      },
      emphasis: {
        show: true,
        textStyle: {
          fontSize: '30',
          fontWeight: 'bold'
        }
      }
    },
    labelLine: {
      normal: {
        show: false
      }
    },
    data: mydata
  }]
};

myChart.setOption(myChartOption);
#myChart {
  width: 100%;
  min-height: 330px;
  margin: 0 auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.6.0/echarts.min.js"></script>
<div id="myChart"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

悬停时Chartjs条形图显示旧数据

R plotly饼图-如何显示所有长图例?

饼图:图和图例不匹配

使用数据集和维度未显示Echarts图例

密谋:饼图仅显示图例

饼图图例

饼形图在应显示数据时显示“其他”

高图:更新数据时,图例和标题重叠饼图

想要在Google饼图的图例中显示百分比数据

样式核心图饼图图例项目

如何在图例悬停的Google饼图上显示工具提示?

在带有融合图的饼图中显示图例

Amcharts饼图仅在悬停时显示国家

如何在饼图中的鼠标悬停时显示“%”符号

如何仅使用来自mysql db的数据在Google饼图图例上显示标签和值

当饼图中的所有数据均为0时,如何显示“饼图不可用”消息?

Highcharts - 当饼图在悬停时移动时,如何在每个饼图内移动图标?

从csv加载数据时,Highchart饼图显示“切片0.0%”

根据网格数据显示剑道图(饼图)

如何在饼图中显示图例从图表到饼图钻取高图

突出显示饼图(高图)中的活动数据标签

来自 HTML 表的数据的 Highchart(饼图)不显示图例

使用chart.js在同一页面中绘制多个饼图时仅显示一次图例

MPandroidchart 饼图数据未显示,但标签显示

如何在图例悬停时触发工具提示?

Python多个饼图:图例不显示文本

图表 js 显示悬停图例的数据

带有 highcharts.css 导入的 Highcharts styledMode 导致饼图图例悬停应用于所有图例项

为什么我的 ggplot 饼图不显示图例?