echarts自定义tooltip

一、echarts自定义tooltips

tooltip是指当鼠标移动到图表上时显示的信息窗口。echarts默认的tooltip样式已经非常美观和实用,但有时候我们需要根据实际需求自定义tooltip。这时候我们需要用到echarts的formatter函数来自定义tooltip的内容和样式。

下面是一个简单的例子。首先定义一个包含所有数据的数组,然后使用formatter函数将tooltip内容设置为数据数组中对应的值。

var data = [
    {name:"北京", value:"123"},
    {name:"上海", value:"234"},
    {name:"广州", value:"345"}
];

option = {
    ...
    tooltip: {
        trigger: 'item',
        formatter: function(params) {
            return params.name+': '+params.value;
        }
    },
    ...
};

这段代码中的formatter函数会接收到一个params参数,包含了当前鼠标所在的数据项的各种信息。我们可以根据需要选择需要的信息来格式化tooltip的内容。

二、echarts自定义tooltip带symbol

有时候我们需要在tooltip中显示一个符号来标注数据项,这时候我们可以使用rich属性来自定义symbol。先来看一个简单的例子:

option = {
    ...
    series: [{
        type: 'line',
        data: [10, 22, 32, 45, 38, 56, 74],
        markPoint: {
            label: {
                formatter: '{b}'
            },
            data: [{
                type: 'max',
                name: '最大值'
            },{
                type: 'min',
                name: '最小值'
            }]
        },
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'cross'
            },
            formatter: function(params) {
                var dataIndex = params[0].dataIndex;
                var value = params[0].value;
                return '第'+dataIndex+'个数据项:'+value;
            },
            position: function(pos, params, el, elRect, size) {
                var obj = {top: 10};
                obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 30;
                return obj;
            },
            extraCssText: 'background-color: rgba(255, 255, 255, 0.8);border-radius:3px'
        },
        itemStyle: {
            color: '#1C86EE'
        },
        lineStyle: {
            color: '#1C86EE'
        }
    }],
    ...
};

这个例子中,我们使用了echarts的rich属性来自定义一个symbol,在formatter中将其插入到tooltip中。

三、echarts自定义tooltip带图形

有时候我们需要在tooltip中显示一个图形来表示数据项,这时候我们可以使用formatter函数和echarts.graphic来自定义图形。下面是一个简单的例子:

option = {
    ...
    series: [{
        type: 'line',
        data: [10, 22, 32, 45, 38, 56, 74],
        markPoint: {
            label: {
                formatter: '{b}'
            },
            data: [{
                type: 'max',
                name: '最大值'
            },{
                type: 'min',
                name: '最小值'
            }]
        },
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'cross'
            },
            formatter: function(params) {
                var dataIndex = params[0].dataIndex;
                var value = params[0].value;
                return '第'+dataIndex+'个数据项:'+value;
            },
            position: function(pos, params, el, elRect, size) {
                var obj = {top: 10};
                obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 30;
                return obj;
            },
            extraCssText: 'background-color: rgba(255, 255, 255, 0.8);border-radius:3px',
            formatter: function(params) {
                var dataIndex = params[0].dataIndex;
                var value = params[0].value;
                var iconSize = 20;
                var icon = new echarts.graphic.Rect({
                    shape: {
                        x: -iconSize / 2,
                        y: -iconSize / 2,
                        width: iconSize,
                        height: iconSize
                    },
                    style: {
                        fill: '#1C86EE',
                        stroke: '#fff',
                        lineWidth: 2
                    }
                });
                return icon + '第'+dataIndex+'个数据项:'+value;
            }
        },
        itemStyle: {
            color: '#1C86EE'
        },
        lineStyle: {
            color: '#1C86EE'
        }
    }],
    ...
};

在这个例子中,我们在formatter函数中使用了echarts.graphic.Rect来自定义了一个矩形。同样,我们可以使用其他的图形来自定义tooltip。

四、echarts自定义图例css

我们可以使用echarts.graphic来自定义图例的样式,来达到修改图例样式的目的。这个样式的图例可以居中显示,有动画效果。

option = {
    ...
    legend: {
        data: ['商品1', '商品2', '商品3'],
        bottom: '5%',
        textStyle: {
            color: '#fff'
        },
        icon: 'none',
        selectedMode: 'single',
        selected: {
            '商品1': true
        },
        animationDelay: 1500,
        animationDuration: 800,
        animationEasing: 'elasticOut',
        formatter: function(name) {
            var iconSize = 10;
            var icon = new echarts.graphic.Rect({
                shape: {
                    x: -iconSize / 2,
                    y: -iconSize / 2,
                    width: iconSize,
                    height: iconSize
                },
                style: {
                    fill: '#1C86EE',
                    stroke: '#fff',
                    lineWidth: 2
                }
            });
            return icon + '  ' + name;
        }
    },
    ...
};

五、echarts自定义图形

我们可以使用echarts.graphic来自定义图形,例如圆、矩形等。下面是一个简单的例子,画出一个圆形:

option = {
    ...
    graphic: [{
        type: 'circle',
        shape: {
            cx: 250,
            cy: 150,
            r: 100
        },
        style: {
            fill: 'transparent', 
            stroke: '#1C86EE',
            lineWidth: 4
        }
    }],
    ...
};

这个例子中,我们使用echarts.graphic创建了一个圆形,并将其添加到了option的graphic属性中。在style中可以对图形进行样式设置。

六、echarts自定义图例

echarts默认的图例是按照数据系列自动生成的,我们可以使用formatter函数来自定义图例。下面是一个简单的例子:

option = {
    ...
    legend: {
        data: ['男性用户数', '女性用户数'],
        textStyle: {
            color: '#fff'
        },
        formatter: function(name) {
            if (name == '男性用户数') {
                return '♂ ' + name;
            }
            else {
                return '♀ ' + name;
            }
        }
    },
    series: [{
        data: [152, 64],
        ...
    },{
        data: [113, 85],
        ...
    }],
    ...
};

在这个例子中,我们使用了formatter函数来自定义图例,对男性用户数添加了♂标志,对女性用户数添加了♀标志。

七、echarts自定义icon

我们可以使用echarts.graphic自定义icon来代替默认的图例标记。下面是一个简单的例子:

option = {
    ...
    legend: {
        data: ['男性用户数', '女性用户数'],
        textStyle: {
            color: '#fff'
        },
        icon: 'none',
        formatter: function(name) {
            if (name == '男性用户数') {
                var iconSize = 15;
                var icon = new echarts.graphic.Rect({
                    shape: {
                        x: -iconSize / 2,
                        y: -iconSize / 2,
                        width: iconSize,
                        height: iconSize
                    },
                    style: {
                        fill: '#1C86EE',
                        stroke: '#fff',
                        lineWidth: 2
                    }
                });
                return icon + '  ' + name;
            }
            else {
                var iconSize = 15;
                var icon = new echarts.graphic.Polygon({
                    shape: {
                        points: [[-iconSize / 2, -iconSize / 2], [iconSize / 2, -iconSize / 2], [0, iconSize / 2]],
                    },
                    style: {
                        fill: '#FFA07A',
                        stroke: '#fff',
                        lineWidth: 2
                    }
                });
                return icon + '  ' + name;
            }
        }
    },
    series: [{
        data: [152, 64],
        ...
    },{
        data: [113, 85],
        ...
    }],
    ...
};

在这个例子中,我们对每个图例都使用了不同的图标来表示不同的数据系列。使用不同的echarts.graphic来绘制出我们需要的图标。

八、echarts自定义y轴刻度间距选取

有时候我们需要更细致地控制y轴刻度之间的间距,比如在数据范围比较小的情况下,我们需要将y轴刻度之间距离增加,否则会非常拥挤难以阅读。下面是一个简单的例子:

option = {
    ...
    yAxis: {
        type: 'value',
        interval: 20,
        splitNumber: 6
    },
    ...
};

在这个例子中,我们将y轴刻度之间的距离设置为20,刻度数目为6,这样就可以有效地控制y轴的刻度间距,使图表更易读。

原创文章,作者:WNFDZ,如若转载,请注明出处:https://www.506064.com/n/331425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WNFDZWNFDZ
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:47

相关推荐

  • Echarts 地图 Label 增加背景图

    本文将从多个方面对 Echarts 地图 Label 增加背景图进行详细的阐述。 一、背景图的作用 为 Echarts 地图添加背景图可以使 Label 更加直观、美观,提升视觉效…

    编程 2025-04-29
  • Python中自定义函数必须有return语句

    自定义函数是Python中最常见、最基本也是最重要的语句之一。在Python中,自定义函数必须有明确的返回值,即必须要有return语句。本篇文章将从以下几个方面对此进行详细阐述。…

    编程 2025-04-29
  • Python自定义列表

    本文将为大家介绍Python中自定义列表的方法和应用场景。对自定义列表进行详细的阐述,包括列表的基本操作、切片、列表推导式、列表的嵌套以及列表的排序,希望能够帮助大家更好地理解和应…

    编程 2025-04-27
  • 如何添加Python自定义模块?

    Python是一种非常流行的脚本语言,因其易学易用和功能强大而备受欢迎。自定义模块是Python开发中经常使用的功能之一。本文将从多个方面为您介绍如何添加Python自定义模块。 …

    编程 2025-04-27
  • ECharts地图轮播

    本文将从插件基础、数据准备及处理、地图呈现、轮播控制等方面,对ECharts地图轮播进行详细阐述。 一、插件基础 ECharts官方提供了一个名为“echarts-gl”的插件,它…

    编程 2025-04-27
  • Echarts 双 Y 轴详解

    一、什么是双 Y 轴 Echarts 双 Y 轴是一种常见的图表类型,它可以在同一张图表中展示多个指标,每个指标都有自己的 Y 轴。这种图表类型主要用于展示异构指标之间的关系,可以…

    编程 2025-04-25
  • 高德自定义地图——多维度定制地图

    一、使用高德自定义地图的必要性 高德自定义地图是指用户可以在高德地图上按照自己的要求添加标注、修改道路、调整地图颜色等一系列操作,从而形成符合自己需求的地图,而这种地图是只有拥有者…

    编程 2025-04-24
  • ECharts柱状图间隔完全指南

    ECharts是一个非常强大的JavaScript图表库,它提供了丰富的可定制化配置选项以及良好的兼容性。其中,柱状图是一种非常常见的图表类型,同时也是ECharts中功能齐全的图…

    编程 2025-04-24
  • 使用Vue3引入Echarts

    一、概述 Echarts是一个数据可视化库,支持多种图表类型,包括折线图、柱状图、饼图、散点图等等。Vue3作为前端开发的主流框架之一,也可以方便地集成Echarts来实现数据可视…

    编程 2025-04-23
  • ECharts水球图的详细阐述

    ECharts是一个基于JavaScript的开源可视化库,可用于Web应用程序开发。ECharts官方提供的全要素的多种类型数据图表支持,其中水球图是一种较为特殊的图表类型。可以…

    编程 2025-04-23

发表回复

登录后才能评论