十一、基础教程-图例(Legend)

图例是图表中用不同形状、颜色、文字等 标示不同数据列,通过点击标示可以显示或隐藏该数据列;通过设置 legend.enabled = true | false 来打开或关闭图例。

图例

一、 图例样式

1、图例容器样式
图例容器指的是整个图例容器的样式,包含背景、边框、边距、宽度等,详细属性及说明见下表
参数名解释默认值
backgroundColor背景颜色null
borderColor边框颜色‘#909090’
margin外边距15
padding内边距8
maxHeight最大高度null
navigation导航,当设置了最大高度后,图例无法完整显示时,则会用导航的形式展示(分页)
shadow图例阴影效果,赋值可以是 boolean 或 Objectfalse
width图例宽度null
verticalAlign垂直对齐方式,有 ‘top’, ‘middle’ 及 ‘bottom’ 可选‘bottom’
useHTML是否以HTML形式渲染(默认是SVG渲染),当使用 HTML 模式渲染是,图例导航无效false
2、图例项样式
上面说到了图例容器的样式可以控制图例整体样式,对应配置图例里的内容是通过图例项相关属性来控制的,见下表
参数名解释默认值
itemDistance图例项间距20
itemStyle图例样式itemStyle: { cursor: ‘pointer’, color: ‘#3E576F’ }
itemHiddenStyle图例隐藏时的样式itemHiddenStyle: { color: ‘#CCC’ }
itemHoverStyle图例鼠标划过时样式itemHoverStyle: { color: ‘#000’ }
itemMarginBottom图例项底边距0
itemMarginTop图例项顶部边距0
itemWidth图例项宽度null
symbolHeight图例项标示高度12
symbolRadius图例项标示圆角2
symbolWidth图例项标示宽度16

二、图例内容及定位

1. 图例内容
|       参数名         |                       解释                      |               默认值             |
|----------------       |-------------------                            |               ---                 |
|labelFormat|图例文字格式化字符串 |{name}|
|labelFormatter|图例内容格式化函数|function() { return this.name}|
|reversed|是否倒序|false|
|rtl|文字是否显示在符号前面,主要针对阅读习惯从右至左的用户|false|
|title|图例标题 |title: { text: null, style: { fontWeight: "blod"}}|
关于格式化函数及格式化字符串这里简单说明如下:
labelFormatter: function() {
   /*
    *  格式化函数可用的变量:this, 可以用 console.log(this) 来查看包含的详细信息
    *  this 代表当前数据列对象,所以默认的实现是 return this.name 
    */
    return  this.name + '(Click to hide or show)';
} 
labelFormat 格式化字符是格式化函数的一种简写方式,即用包含变量的字符串代替函数。
labelFormat: '{name} (Click to hide or show)'; 
2. 定位
|       参数名         |                       解释                      |               默认值             |
|----------------       |-------------------                            |               ---                 |
| align|图例在图表中的对齐方式,有 “left”, "center", "right" 可选|“center”|
|floating|图例是否浮动,设置浮动后,图例将不占位置|false|
|layout|图例内容布局方式,有水平布局及垂直布局可选,对应的配置值是: “horizontal”, “vertical”|"horizontal"|
|x|水平偏移|0|
|y|竖直偏移|0|

三、图例点击事件

1、默认图例点击事件
图例默认的点击行为是显示或隐藏当前数据列。
plotOptions: {
  series: {
    events: {
        legendItemClick: function(e) {
            /*
             * 默认实现是显示或隐藏当前数据列,e 代表事件, this 为当前数据列
             */
        }
    }
  }
} 
2、禁用图例点击隐藏效果
plotOptions: {
  series: {
    events: {
        legendItemClick: function(e) {
            return false; // 直接 return false 即可禁用图例点击事件
        }
    }
  }
} 
3、饼图图表点击事件
上述代码对饼图是无效的,因为饼图的扇区是数据点对象,所有针对数据列的配置函数当然无效。
对于饼图对应 legendItemClick 事件是 point.legengItemClick 。
plotOptions: {
  pie: {
    point: {
        events: {
            legendItemClick: function(e) {
                return false; // 直接 return false 即可禁用图例点击事件
            }
        }
    }
  }
}
4、自定义图例点击事件
默认是点击某个图例显示或隐藏当前数据列,这里改变为点击某个图例只显示当前数据列,隐藏其他数据列
plotOptions: {
    series: {
        events: {
            legendItemClick: function(e) {
                var index = this.index;
                var series = this.chart.series;
                if (!series[index].visible) {
                    for (var i = 0; i < series.length; i++) {
                        var s = series[i];
                        i === index ? s.show() : s.hide();
                    }
                }
                return false;
            }
        }
    }
}

四、关于图例的常见问题

以下列举出关于图例的常见问题,
1、如何不显示某个图例
series: [{
    data: [],
    name: "",
    showInLegend: false // 设置为 false 即为不显示在图例中
}, {
    data: [],
    name: "",
    showInLegend: true // 默认值
}] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值