[个人项目] echarts 实现数据(tooltip)自动轮播插件

前言

最近, 工作中要做类似这种的项目. 用到了百度的 echarts 这个开源的数据可视化的框架.

安全态势感知

因为投屏项目不像PC端的WEB, 它不允许用户用鼠标键盘等交互. 有些图表只能看到各部分的占比情况, 不能显示具体的数值.
比如:

设计图1设计图2

得让页面的数据(即tootips)自动轮播数据,效果是这样的.

最终效果图1最终效果图2

所以 echarts-auto-tooltips 就应运而生.

github地址

使用方法

  1. 引入ehcrts-auto-tooltips
<script type="text/javascript" src="js/echarts-auto-tooltip.js"></script>
  1. 在初始化 echarts 实例并通过 setOption 方法生成图表的代码下添加如下代码
// 使用指定的配置项和数据显示图表
myChart.setOption(option);
tools.loopShowTooltip(myChart, option, {loopSeries: true}); // 使用本插件

参数说明

mychart: 初始化echarts的实例

option: 指定图表的配置项和数据

loopOption: 本插件的配置

属性说明默认值
interval轮播时间间隔,单位毫秒默认为2000
loopSeriestrue表示循环所有series的tooltip,false则显示指定seriesIndex的tooltipboolean类型,默认为false
seriesIndex指定某个系列(option中的series索引)循环显示tooltip,当loopSeries为true时,从seriesIndex系列开始执行.默认为0

实例代码

function drawSensitiveFile() {
    let myChart = echarts.init(document.getElementById('sensitive-file'));
    let option = {
        title: {
            text: '敏感文件分布分析',
            x: '40',
            textStyle: {
                color: '#fff'
            }

        },
        tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)",

        },
        legend: {
            type: 'scroll',
            orient: 'vertical',
            right: 10,
            top: 20,
            bottom: 20,
            data: ['人事类', '研发类', '营销类', '客户信息类'],
            textStyle: {
                color: '#fff'
            }
        },
        series: [
            {
                name: '敏感文件分布数量',
                type: 'pie',
                radius: '55%',
                center: ['50%', '60%'],
                data: [
                    {value: 335, name: '人事类'},
                    {value: 310, name: '研发类'},
                    {value: 234, name: '营销类'},
                    {value: 1548, name: '客户信息类'}
                ],
                itemStyle: {
                    emphasis: {
                        shadowBlur: 10,
                        shadowOffsetX: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                },
                labelLine: {
                    normal: {
                        //length:5,  // 改变标示线的长度
                        lineStyle: {
                            color: "#fff"  // 改变标示线的颜色
                        }
                    },
                },
                label: {
                    normal: {
                        textStyle: {
                            color: '#fff'  // 改变标示文字的颜色
                        }
                    }
                },
            }
        ]
    };
    myChart.setOption(option);
    tools.loopShowTooltip(myChart, option, {loopSeries: true});
}

转载于:https://www.cnblogs.com/liuyishi/p/9823508.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一个基于JavaScript的开源可视化库,用于构建交互式的图表和数据可视化界面。在ECharts中,折线图是一种常见的图表类型,而tooltip则是用于显示数据点的详细信息的工具提示框。 要实现ECharts折线图tooltip轮播效果,可以通过设置tooltip的属性来实现。具体步骤如下: 1. 在ECharts配置项中,找到tooltip属性,并设置trigger为'axis',表示触发方式为坐标轴触发。 2. 设置tooltip的formatter属性为一个函数,用于自定义tooltip的内容。 3. 在formatter函数中,可以通过params参数获取到当前tooltip所需要显示的数据。根据需求,可以将数据进行处理后返回给tooltip。 4. 在formatter函数中,可以使用setInterval函数来实现tooltip内容的轮播效果。通过定时器不断更新tooltip的显示内容,从而实现轮播效果。 下面是一个示例代码,演示了如何实现ECharts折线图tooltip轮播效果: ```javascript option = { // 其他配置项... tooltip: { trigger: 'axis', formatter: function(params) { var index = 0; setInterval(function() { index = (index + 1) % params.length; // 根据需求处理数据后返回tooltip内容 var content = params[index].name + ': ' + params[index].value; // 更新tooltip内容 echarts.getInstanceByDom(document.getElementById('chart')).getOption().tooltip[0].formatter = content; echarts.getInstanceByDom(document.getElementById('chart')).hideTip(); echarts.getInstanceByDom(document.getElementById('chart')).showTip({seriesIndex: 0, dataIndex: index}); }, 2000); return params[0].name + ': ' + params[0].value; } }, // 其他配置项... }; ``` 请注意,上述代码中的`chart`是折线图所在的DOM元素的id,需要根据实际情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值