图例 - Legend
配置图例有两种方式
第一种,传入 boolean
设置是否显示图例。
chart.legend(false); // 关闭图例
第二种,传入 legendOption 对图例进行整体配置。
(field: legendOption) => View;
chart.legend({
position: 'right',
});
第三种,对 field 字段对应的图例进行配置。
(field: string, legendOption) => View;
// 关闭某个图例,通过数据字段名进行关联
view.legend('city', false);
// 对特定的图例进行配置
view.legend('city', {
position: 'right',
});
legendOption 配置如下:
legendOption.layout
布局方式: horizontal,vertical
legendOption.position
图例的位置。
legendOption.background
背景框配置项。LegendBackgroundCfg 配置如下:
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
padding | number | number[] | - | 背景的留白 |
style | ShapeAttrs | - | 背景样式配置项 |
legendOption.flipPage
legendOption.maxRow
layout: 'horizontal'
),默认为:1。legendOption.pageNavigator
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
marker | PageNavigatorMarker | - | 分页器指示箭头配置项 |
text | PageNavigatorText | - | 分页器指示文本配置项 |
示例:
pageNavigator: {
marker: {
style: {
// 非激活,不可点击态时的填充色设置
inactiveFill: '#000',
inactiveOpacity: 0.45,
// 默认填充色设置
fill: '#000',
opacity: 0.8,
size: 12,
},
},
text: {
style: {
fill: '#ccc',
fontSize: 8,
},
},
},
legendOption.selected ✨ 🆕
图例高亮状态,false 表示默认置灰,默认不设置 或 true 表示高亮,会同步进行数据的筛选展示。
示例:
chart.legend('type', {
selected: {
分类一: true,
分类二: false,
分类三: false,
},
});
legendOption.handler
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
size | number | - | 滑块的大小 |
style | ShapeAttrs | - | 滑块的样式设置 |
legendOption.itemHeight
legendOption.itemWidth
legendOption.itemName
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
style | ((item: ListItem, index: number, items: ListItem[]) => ShapeAttrs) | ShapeAttrs | - | 文本样式配置项 | |
spacing | number | - | 图例项 marker 同后面 name 的间距 | |
formatter | (text: string, item: ListItem, index: number) => any; | 格式化函数 |
其中, ShapeAttrs
详细配置见:文档;ListItem
配置如下:
type ListItem = {
/**
* 名称 {string}
*/
name: string;
/**
* 值 {any}
*/
value: any;
/**
* 图形标记 {object|string}
*/
marker?: Marker | string;
}
type Marker = {
symbol? string;
style?: ShapeAttrs;
spacing?: number;
};
legendOption.itemSpacing
legendOption.itemValue
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
alignRight | boolean | false | 是否右对齐,默认为 false,仅当设置图例项宽度时生效 | |
style | ((item: ListItem, index: number, items: ListItem[]) => ShapeAttrs) | ShapeAttrs | - | 文本样式配置项 | |
formatter | (text: string, item: ListItem, index: number) => any; | 格式化函数 |
其中, ShapeAttrs
详细配置见:文档;ListItem
配置如下:
type ListItem = {
/**
* 名称 {string}
*/
name: string;
/**
* 值 {any}
*/
value: any;
/**
* 图形标记 {object|string}
*/
marker?: Marker | string;
}
type Marker = {
symbol? string;
style?: ShapeAttrs;
spacing?: number;
};
legendOption.radio
LegendRadio 配置如下:
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
style | ShapeAttrs | - | 文本样式配置项 | |
tip | string | - | 提示文案 |
legendOption.animate
true
是否开启动画开关。
legendOption.animateOption
动画参数配置,当且仅当 animate 属性为 true,即动画开启时生效。动画配置详情如下:
ComponentAnimateOption 为组件各个动画类型配置。其中 easing
传入动画函数名称,内置默认动画函数如下表,同时也可以通过 registerAnimation
自定义动画函数。
interface ComponentAnimateOption {
appear?: ComponentAnimateCfg; // 图表第一次加载时的入场动画
enter?: ComponentAnimateCfg; // 图表绘制完成,发生更新后,产生的新图形的进场动画
update?: ComponentAnimateCfg; // 图表绘制完成,数据发生变更后,有状态变更的图形的更新动画
leave?: ComponentAnimateCfg; // 图表绘制完成,数据发生变更后,被销毁图形的销毁动画
}
interface ComponentAnimateCfg {
duration?: number; // 动画执行时间
easing?: string; // 动画缓动函数
delay?: number; // 动画延迟时间
}
animation | 效果 | 说明 |
---|---|---|
'fade-in' | 渐现动画。 | |
'fade-out' | 渐隐动画。 | |
'grow-in-x' | 容器沿着 x 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | |
'grow-in-y' | 容器沿着 y 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | |
'grow-in-xy' | 容器沿着 x,y 方向放大的矩阵动画,多用于 G.Group 容器类进行动画。 | |
'scale-in-x' | 单个图形沿着 x 方向的生长动画。 | |
'scale-in-y' | 单个图形沿着 y 方向的生长动画。 | |
'wave-in' | 划入入场动画效果,不同坐标系下效果不同。 | |
'zoom-in' | 沿着图形中心点的放大动画。 | |
'zoom-out' | 沿着图形中心点的缩小动画。 | |
'path-in' | path 路径入场动画。 | |
'position-update' | 图形位置移动动画。 |
legendOption.label
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
align | string | - | 文本同滑轨的对齐方式 - rail : 同滑轨对齐,在滑轨的两端 - top, bottom: 图例水平布局时有效 - left, right: 图例垂直布局时有效 | |
style | ShapeAttrs | - | 文本样式配置项 | |
spacing | number | - | 文本同滑轨的距离 |
legendOption.marker
MarkerCfg 配置
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
symbol | string | function | - | 配置图例 marker 的 symbol 形状,详见 marker.symbol 配置 |
style | ShapeAttrs | ((style: ShapeAttrs) => ShapeAttrs) | - | 图例项 marker 的配置项, 详见 ShapeAttrs |
spacing | number | - | 图例项 marker 同后面 name 的间距 |
marker.symbol
内置一些 symbol 类型,可以指定具体的标记类型,也可以通过回调的方式返回 symbol 绘制的 path 命令
内置支持的标记类型有:"circle" | "square" | "line" | "diamond" | "triangle" | "triangle-down" | "hexagon" | "bowtie" | "cross" | "tick" | "plus" | "hyphen"
回调的方式为:(x: number, y: number, r: number) => PathCommand
;
type LegendItem = { name: string; value: string; } & MarkerCfg;
type MarkerCfgCallback = (name: string, index: number, item: LegendItem) => MarkerCfg;
legendOption.min
legendOption.max
legendOption.maxItemWidth
legendOption.maxWidthRatio
null
。legendOption.maxHeightRatio
null
。legendOption.maxWidth
const viewBBox = this.view.viewBBox;
const maxWidth = Math.min(maxWidth, maxWidthRatio * viewBBox.width);
legendOption.maxHeight
const viewBBox = this.view.viewBBox;
const maxHeight = Math.min(maxHeight, maxHeightRatio * viewBBox.height);
legendOption.offsetX
图例 x 方向的偏移。
legendOption.offsetY
图例 y 方向的偏移。
legendOption.rail
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
type | string | - | rail 的类型,color, size | |
size | number | - | 滑轨的宽度 | |
defaultLength | number | - | 滑轨的默认长度,,当限制了 maxWidth,maxHeight 时,不会使用这个属性会自动计算长度 | |
style | ShapeAttrs | - | 滑轨的样式 |
legendOption.reversed
legendOption.slidable
legendOption.title
图例标题配置,默认不展示。G2LegendTitleCfg 配置如下:
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
spacing | number | - | 标题同图例项的间距 | |
style | ShapeAttrs | - | 文本样式配置项 |
legendOption.track
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
style | ShapeAttrs | - | 选定范围的样式 |
legendOption.values
legendOption.custom
是否为自定义图例,当该属性为 true 时,需要声明 items 属性。
legendOption.items
参数名 | 类型 | 是否必选 | 默认值 | 描述 |
---|---|---|---|---|
id | string | - | 唯一值,用于动画或者查找 | |
name | string | required | - | 名称 |
value | any | required | - | 值 |
marker | MarkerCfg | - | 图形标记 |
MarkerCfg 配置
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
symbol | string | function | - | 配置图例 marker 的 symbol 形状,详见 marker.symbol 配置 |
style | ShapeAttrs | ((style: ShapeAttrs) => ShapeAttrs) | - | 图例项 marker 的配置项, 详见 ShapeAttrs |
spacing | number | - | 图例项 marker 同后面 name 的间距 |
marker.symbol
内置一些 symbol 类型,可以指定具体的标记类型,也可以通过回调的方式返回 symbol 绘制的 path 命令
内置支持的标记类型有:"circle" | "square" | "line" | "diamond" | "triangle" | "triangle-down" | "hexagon" | "bowtie" | "cross" | "tick" | "plus" | "hyphen"
回调的方式为:(x: number, y: number, r: number) => PathCommand
;