欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 21:21:42
前言 最近, 工作中要做类似这种的项目. 用到了百度的 "echarts" 这个开源的数据可视化的框架. 因为投屏项目不像PC端的WEB, 它不允许用户用鼠标键盘等交互. 有些图表只能看到各部分的占比情况, 不能显示具体的数值. 比如: 得让页面的数据(即tootips)自动轮播数据,效果是这样的. ......

前言

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

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

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

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

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

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

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

使用方法

  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
loopseries true表示循环所有series的tooltip,false则显示指定seriesindex的tooltip boolean类型,默认为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});
}