一、echarts饼图百分比实现原理
echarts饼图的实现原理是将数据按比例分为多个扇形,根据扇形所占比例在圆心处标出百分比数值,同时在图例中标出具体数值及对应颜色信息,让用户直观地了解数据分布情况。
option = { tooltip: { formatter: "{b} : {c} ({d}%)" }, legend: { data:['数据1','数据2','数据3'] }, series : [ { name: '数据分布', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:500, name:'数据1'}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] };
二、echarts饼图
echarts饼图是一种常用的数据可视化图表,可以直观地展现数据的比例关系。
在echarts饼图中,每个扇形代表一种数据,扇形所占角度越大表示该数据所占比例越大。通过不同的颜色区分不同的数据,使得数据变得更加容易理解。
三、echarts饼图百分比自定义
用户可以通过echarts的API自定义饼图百分比的样式、颜色、标签等信息,以满足个性化需求。
下面是一个自定义echarts饼图的例子:
option = { tooltip: { formatter: "{b} : {c} ({d}%)" }, legend: { data:['数据1','数据2','数据3'] }, series : [ { name: '数据分布', type: 'pie', radius : ['40%', '55%'], center: ['50%', '60%'], roseType: 'radius', label: { formatter: '{b|{b}:}{c} {per|{d}%} ', rich: { b: { fontSize: 12, lineHeight: 20 }, per: { fontSize: 12, lineHeight: 20 } } }, data:[ {value:500, name:'数据1'}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] };
四、echarts饼图百分比为0不显示
在某些情况下,数据可能出现0值的情况,为了避免显示的数据有误,用户可以将0值对应的扇形隐藏掉。
option = { series: [{ type: 'pie', data: [ {value:0, name:'数据1', itemStyle:{normal:{opacity:0}}}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ] }] };
五、echarts饼图间隙
为了使饼图更加美观,用户可以通过设置饼图间隙来控制扇形之间的距离。
option = { series : [ { type:'pie', radius : ['50%', '70%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, data:[ {value:335, name:'数据1'}, {value:310, name:'数据2'}, {value:234, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, roseType: 'angle', //饼图间隙 //每个扇形之前的间隙大小 //为百分比值,数值在0~1之间 //若该值为0,则组成的就是环形图了 //默认值为0 labelLine: { normal: { length: 1, length2: 25, smooth: true, lineStyle: { color: 'rgba(255, 255, 255, 0.3)' } } }, silent: false } ] };
六、echarts饼图图例间距
用户可以通过设置echarts饼图图例的间距来调整图例的位置,使得图例更加美观。
option = { tooltip: { trigger: 'item', formatter: "{b} : {c} ({d}%)" }, legend: { orient: 'vertical', x: 'right', //图例之间的距离 itemGap: 20, data:['数据1','数据2','数据3'] }, series : [ { name: '数据分布', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:500, name:'数据1'}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] };
七、echarts饼图图例设置
用户可以通过设置echarts饼图的图例信息,例如位置、字体大小、字体颜色等,来控制图例的外观效果。
option = { tooltip: { trigger: 'item', formatter: "{b} : {c} ({d}%)" }, legend: { orient: 'vertical', x: 'right', y: 'center', textStyle: { color: '#fff', fontSize: 14 }, data:['数据1','数据2','数据3'] }, series : [ { name: '数据分布', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:500, name:'数据1'}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 5, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } }, label: { normal: { textStyle: { color: '#fff', fontSize: 12 } } } } ] };
八、echarts图例加百分号
用户可以通过自定义echarts图例文字内容的方式在图例上加上百分号,提高数据表现力。
option = { tooltip: { trigger: 'item', formatter: "{b} : {c} ({d}%)" }, legend: { orient: 'vertical', x: 'right', data:['数据1','数据2','数据3'].map(function(item){ return item + ' 100%'; }) }, series : [ { name: '数据分布', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:500, name:'数据1'}, {value:300, name:'数据2'}, {value:200, name:'数据3'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] };