最近项目中使用echarts来实现饼图,其中样式都需要自己来设置,下面就分享一下代码,里面包含很多各种个性化的设置:
myChart.setOption({
//鼠标移动到饼图某一块时突出显示
tooltip: {
trigger: 'item',
formatter: '{b} : {c}', // b为name,c为value
// formatter: '{b}:{c}({d}%)' // d为百分比
},
//图例数据解析
legend: {
//图例 标注各种颜色代表的模块
orient: "horizontal", //图例的显示方式 默认横向显示 horizontal vertical
bottom: 10, //控制图例出现的距离 默认左上角
// left: "90%", //控制图例的位置
itemWidth: 16, //图例颜色块的宽度和高度
itemHeight: 16,
icon:"circle", // 图例前的图标为圆点
itemGap: 20,//图例之间的间距
borderWidth: 0, // 图例边框线宽
padding: [0, 80, 0, 80],
// textStyle: {
// //图例中文字的样式
// color: "#217def",
// fontSize: 14,
// fontWeight: '600',
//padding: [0, 0, 0, 4], // 修改文字和图标距离
// },
formatter: e =>{
var data =this.option.series[0].data;
var total = 0;
var val = 0;
data.forEach(el => {
total += el.value;
if(e == el.name) val = el.value
});
return `${e} ${((val / total)*100).toFixed(2)}%`
},
// },
data: that.xAxisData, //图例上显示的饼图各模块上的名字
},
color: ['#696969', '#5470c6', '#91cd77', '#ef6567', '#f9c956', '#75bedc','#ccc'],// 饼图各块颜色
//数据展示
series: {
type: "pie",
// roseType: 'angle',
center: ["50%", "38%"], // 饼图上下左右位置
radius: ["30%", "60%"], // 空心饼图内外径
data: that.seriesData, // 数据源
label: {
show: false,
formatter: function (arg) {
return arg.name + "(" + arg.value + ")";
},
fontSize: 14,
},
labelLine: {
show: false,
},
itemStyle:{
borderWidth:5, //设置border的宽度有多大
borderColor:'#fff', // 设置后饼图间会有白色空隙
},
},
});