ChartPie 饼图
用于展示数据的饼图/环形图组件,支持自定义颜色、图例位置、标签显示等配置。
基础用法
基础的环形图用法,图例显示在右侧。
饼图(非环形)
通过设置 inner-radius 为 0 来显示实心饼图。
图例位置
通过 legend-position 属性可以设置图例的位置,支持 left、right、top、bottom。
自定义颜色
通过 colors 属性可以自定义饼图的颜色,支持透明度设置。
数据项自定义颜色
每个数据项可以单独设置颜色,通过 data 中的 color 属性。
隐藏图例
通过 show-legend 属性可以隐藏图例。
自定义标签
通过 show-label、label-position、show-percent、show-value 等属性可以自定义标签显示。
自定义尺寸和半径
通过 height、width、inner-radius、radius 属性可以自定义图表尺寸和环形图的内外半径。
进度环
通过 progress-mode 属性可以启用进度环模式,显示单值进度,中心显示百分比。适合展示完成度、进度等场景。
基础进度环
使用 progress-mode 启用进度环模式,数据只需传入一个值,组件会自动计算百分比并显示在中心。通过 progress-label 可以自定义中心显示的文案,默认为"完成率"。
自定义进度环文案
通过 progress-label 属性可以自定义进度环中心显示的文案,文案会显示在百分比上方。
自定义进度环颜色
通过 progress-color 可以自定义进度条的渐变色,通过 progress-bg-color 可以自定义未完成部分的颜色。
自定义最大值
通过 progress-max 可以设置进度的最大值,用于计算百分比。例如,如果最大值是 200,当前值是 60,则显示 30%。
仪表盘模式
通过 gauge-mode 属性可以启用仪表盘模式,显示为半圆形仪表盘,适合展示指标、评分等场景。
基础仪表盘
使用 gauge-mode 启用仪表盘模式,数据只需传入一个值,组件会自动显示为半圆形仪表盘。
自定义仪表盘范围
通过 gauge-min 和 gauge-max 可以自定义仪表盘的数值范围。
水球模式
通过 liquid-mode 属性可以启用水球模式,显示为水波动画效果,适合展示完成度、进度等场景。
基础水球
使用 liquid-mode 启用水球模式,数据只需传入一个值,组件会自动显示为水球效果。
自定义水球颜色
通过 liquid-color 和 liquid-bg-color 可以自定义水球的颜色和背景色。
自定义水球半径
通过 liquid-radius 可以控制水球的大小,值为 0-1 之间的比例,相对于容器大小。
玫瑰图
通过 rose-type 属性可以将饼图转换为玫瑰图。玫瑰图有两种模式:
'radius':扇形的半径根据数值大小而变化'area':扇形的面积根据数值大小而变化
半径玫瑰图
使用 rose-type="radius" 创建半径玫瑰图,扇形的半径大小反映数值大小。
面积玫瑰图
使用 rose-type="area" 创建面积玫瑰图,扇形的面积大小反映数值大小。
玫瑰图切换
可以通过动态切换 rose-type 来在普通饼图和玫瑰图之间切换。
百分比配置
通过 percent-precision 属性可以控制百分比的小数位数,该属性同时影响标签、图例和 tooltip 中的百分比显示。通过 tooltip-show-percent 属性可以控制 tooltip 中是否显示百分比。
百分比精度
通过 percent-precision 可以设置百分比的小数位数,0 表示不显示小数,1 表示显示一位小数,以此类推。
Tooltip 百分比显示
通过 tooltip-show-percent 属性可以控制鼠标悬停时 tooltip 中是否显示百分比。
图例显示配置
通过 legend-show-value 和 legend-show-percent 属性可以控制图例中是否显示数值和百分比。
完全自定义配置
通过 options 属性可以完全自定义 ECharts 配置项,传入后将以 options 为准,忽略其他属性。这允许你使用 ECharts 的所有功能。
注意:使用 options 时,需要参考 ECharts 饼图配置项文档 来配置所有选项。
API
Props
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| data | 数据数组 | ChartPieDataItem[] | — | [{ name: '数据1', value: 100 }, { name: '数据2', value: 200 }, { name: '数据3', value: 300 }] |
| colors | 默认颜色数组 | string[] | — | ['rgba(76, 175, 80, 1)', 'rgba(33, 150, 243, 1)', 'rgba(255, 152, 0, 1)'] |
| showLegend | 是否显示图例 | boolean | — | true |
| legendPosition | 图例位置 | string | left / right / top / bottom | right |
| height | 图表高度 | number | string | — | '400px' |
| width | 图表宽度 | number | string | — | '100%' |
| innerRadius | 内半径(0-1之间或百分比字符串,用于控制环形图的内圆大小,0为饼图) | number | string | — | '60%' |
| radius | 外半径(0-1之间或百分比字符串,用于控制环形图的外圆大小) | number | string | — | '80%' |
| showLabel | 是否显示标签 | boolean | — | true |
| labelPosition | 标签位置 | string | inside / outside / center | outside |
| showPercent | 是否显示百分比 | boolean | — | true |
| showValue | 是否显示数值 | boolean | — | false |
| legendShowValue | 图例是否显示数值 | boolean | — | true |
| legendShowPercent | 图例是否显示百分比 | boolean | — | true |
| percentPrecision | 百分比小数位数,控制标签、图例和 tooltip 中百分比的精度 | number | — | 0 |
| tooltipShowPercent | tooltip 中是否显示百分比 | boolean | — | true |
| progressMode | 是否启用进度环模式,启用后显示为单值进度环,中心显示百分比 | boolean | — | false |
| progressMax | 进度环的最大值(用于计算百分比) | number | — | 100 |
| progressColor | 进度环的渐变色配置,格式为 [起始色, 结束色] | string[] | — | ['#87CEEB', '#4169E1'] |
| progressBgColor | 进度环未完成部分的颜色 | string | — | rgba(200, 200, 200, 0.2) |
| progressLabel | 进度环中心显示的文案(显示在百分比上方) | string | — | 完成率 |
| gaugeMode | 是否启用仪表盘模式,启用后显示为半圆形仪表盘 | boolean | — | false |
| gaugeMin | 仪表盘的最小值 | number | — | 0 |
| gaugeMax | 仪表盘的最大值 | number | — | 100 |
| gaugeColor | 仪表盘的分段颜色配置 | string[] | — | ['#91CC75', '#FAC858', '#EE6666'] |
| liquidMode | 是否启用水球模式,启用后显示为水波动画效果 | boolean | — | false |
| liquidColor | 水球颜色 | string | — | #3BA3FF |
| liquidBgColor | 水球背景色 | string | — | rgba(59, 163, 255, 0.1) |
| liquidRadius | 水球半径(相对于容器大小的比例,0-1之间) | number | — | 0.4 |
| roseType | 玫瑰图类型 | string | false | radius / area / false | false |
| options | 完全自定义的 ECharts 配置项,传入后将以 options 为准,忽略其他属性 | object 注意: options 的类型定义请参考 ECharts 饼图配置项文档 | — | undefined |
ChartPieDataItem
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| name | 数据项名称 | string | — | — |
| value | 数据项值 | number | — | — |
| color | 数据项颜色(可选,会覆盖 colors 中的对应颜色) | string | — | — |