| 文本全部展示,重叠则调整 | 文本重叠则不展示 | 点击操作 |
|---|---|---|
![]() |
![]() |
![]() |
PieLabel 是一个用于绘制饼图文本的插件。
如何引用
PieLabel 插件默认没有打包至 @antv/f2 模块包中,你可以通过两种方式引入:
- 引用完整版 F2
const F2 = require('@antv/f2/lib/index-all');
- 手动引入 PieLabel 模块,并将其注册至 Chart 或者 chart 实例
const F2 = require('@antv/f2/lib/index'); // 建议统一从 lib 下引入const PieLabel = require('@antv/f2/lib/plugin/pie-label'); // 引入 PieLabel 模块// 方式一:全局注册F2.Chart.plugins.register(PieLabel);// 方式二:注册至具体的 chart 实例const chart = new F2.Chart({id: 'canvas',plugins: PieLabel});
将 PieLabel 插件注册完毕之后,就可以调用 chart.pieLabel(config) 进行文本的配置了。
API
调用以下方法对饼图文本进行相应的配置:
chart.pieLabel({anchorOffset: {Number}, // 锚点的偏移量inflectionOffset: {Number}, // 拐点的偏移量sidePadding: {Number}, // 文本距离画布左右两边的距离lineHeight: {Number}, // 文本的最大行高adjustOffset: {Number}, // 发生调整时的偏移量skipOverlapLabels: {Boolean}, // 是否不展示重叠的文本lineStyle: {Object}, // 连接线的样式anchorStyle: {Object}, // 锚点的样式label1: {Function}, // label1 文本内容及其样式,Function 类型,回调函数label2: {Function}, // label2 文本内容及其样式,Function 类型,回调函数onClick: {Function}, // 点击行为,回调函数triggerOn: {String}, // 点击行为触发的事件类型activeShape: {Boolean}, // 当有图形被选中的时候,是否激活图形activeStyle: {Object}, // 设置激活图形的样式label1OffsetY: {Number}, // label1 与连接线在垂直方向的偏移量label2OffsetY: {Number}, // label2 与连接线在垂直方向的偏移量})

配置项图解
配置项
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
anchorOffset |
Number | 5 | 锚点的偏移量。 |
inflectionOffset |
Number | 15 | 拐点的偏移量。 |
sidePadding |
Number | 20 | 文本距离画布左右两边的距离。 |
lineHeight |
Number | 32 | 文本的最大行高。 |
adjustOffset |
Number | 15 | 发生调整时的偏移量。 |
skipOverlapLabels |
Boolean | false | 是否将重叠的文本忽略,默认为 false,即展示全部文本。 |
lineStyle |
Object | 连接线的样式,颜色默认同对应饼图颜色相同。 | |
anchorStyle |
Object | 锚点的样式,颜色默认同对应饼图的样色相同。 | |
label1 |
Function | null | 配置 label1 文本内容及其样式,是个回调函数,详细使用见链接,该函数的返回值必须是一个对象。 |
label2 |
Function | null | 配置 label2 文本内容及其样式,是个回调函数,详细使用见链接,该函数的返回值必须是一个对象。 |
onClick |
Function | null | 点击行为定义函数,详细使用见链接。 |
triggerOn |
String | ‘touchstart’ | 配置点击行为触发的事件类型。 |
activeShape |
Boolean | false | 当有图形被选中的时候,是否激活图形,默认不激活。 |
activeStyle |
Object | ```javascript |
{ offset: 1, appendRadius: 8, fillOpacity: 0.5 }
| 设置被激活图形的显示样式。其中 `offset` 以及 `appendRadius` 参数的含义同 [pie-select api ](https://www.yuque.com/antv/f2/api-interaction#n3o1th)中的含义相同,分别代表光环的偏移距离以及光环的大小,其他属性为绘图属性即可。 |<a name="ownmbn"></a>### `label1` && `label2` 回调无论是 `label1` 还是 `label2` 的回调函数,都会为用户传递两个参数,如下:```javascriptchart.pieLabel({label1(data, color ) {return {};}});
如果用户不配置,那么就不会展示文本。
| 属性名 | 类型 | 说明 |
|---|---|---|
data |
Object | 对应饼图扇形的原始数据。 |
color |
String | 对应饼图扇形的颜色值。 |
比如:
// 假设数据结构为: { name: 'a', value: 100 }chart.pieLabel({label1(data, color) {return {text: data.name, // 文本内容fill: color // 文本颜色};}});
onClick 回调
我们为 onClick 回调函数传入了一个参数 ev ,如下:
chart.pieLabel({onClick(ev) {}});
通过 ev 参数我们可以获取被点击图形的原始数据:ev.data ,点击的画布坐标:ev.x, ev.y 等。

Demo
![]() |
![]() |
![]() |
|---|---|---|
| 链接 | 链接 | 链接 |






