技术积累系列(四)------echarts处理饼图名称过长自定义formatter换行处理

(1)引入官方的js资源
在这里插入图片描述
(2)界面上可以放一个空的div

  <div class="chart" id="zdxm" >   </div>

js如下

function zdxmpie(){
            	var myChart = echarts.init(document.getElementById('zdxm'));
        		var option = {
        				 title : {
        				        x: '43%',
        						y: '42%',
        						textStyle: {
        							fontFamily: 'sans-serif',
        							fontSize: 22,
        							fontStyle: 'normal',
        							fontWeight: 'bold',
        							},
        						subtextStyle: {
        							color:'black',
        							fontFamily: 'sans-serif',
        							fontSize: 20,
        							fontStyle: 'normal',
        							fontWeight: 'normal',
        							},
        				    },
        				color : [ '#f66900', '#6fc8d0', '#648ca6', '#e9bb27', '#56be8b' ],
        				tooltip : {
        					show: true,
        					trigger: 'item',
        				   formatter: "{a} <br/>{b} : {c}"
        				},
        				calculable : false,
        				series : [
        				          {
        				              name:'重点项目',
        				              type:'pie',
        				              radius : ['62%', '82%'],//控制内外径
        				              center: ['50%', '58%'],//控制内外径
        				              itemStyle : {
        				                  normal : {
        				                      label : {//隐藏标示文字
        				                          show : true,
        				                          position: 'top',
        											formatter: get,//自定义方法
        											 textStyle: {
        												 fontFamily: 'Verdana',
        													fontSize: 12,
        													fontStyle: 'oblique',
        													fontWeight: 'normal',
        													color: "#cac8cb",
        											 }      // 默认使用全局文本样式,详见TEXTSTYLE
        				                      },
        				                      labelLine:{ 
        				                    	  lineStyle: {
        				                              color: "#cac8cb"  // 改变标示线的颜色
        				                           }
     				                    	},
        				                  }
        				              },
        				              data:[
        				              ]
        				          }
        				      ]
        			};
					
	        		$.ajax({ 
	        			url:'/zdxmpie.do',
	        			type:'GET',
	        			async : false, //同步执行 
	        			dataType:'json',
	        			success: function(data) {
	        				var flag = data.o_Ret;
	        				if(flag>0){	
	        				 	var result = data.data;	
	        				 	var len=result.length;
	        				 	if(len>0){
	        				 		option.title.text = '   '+result[len-1].num;
	        				 		option.title.subtext = '所有项目';
	                       	  		for (var i = 0; i < len-1; i++) {
	                       	  			option.series[0].data.push({value:result[i].num, name:result[i].name});
								  	}
	        				 	}
	        				} 
	        			}
	        		});     
	        		myChart.setOption(option);
            };
           var get=function(e){
			            var newStr=" ";
			                var newStr2=" ";
							var start,end;
					    var name_len=e.name.length;                   //每个内容名称的长度
					    var max_name=8;                      //每行最多显示的字数,超过八个字换行处理
					    var new_row = Math.ceil(name_len / max_name);     // 最多能显示几行,向上取整比如2.1就是3行
					    if(name_len>max_name){                 //如果长度大于每行最多显示的字数
					      for(var i=0;i<new_row;i++){               //循环次数就是行数
					        var old='';                        //每次截取的字符
					        start=i*max_name;                   //截取的起点
					         end=start+max_name;               //截取的终点
					        if(i==new_row-1){                   //最后一行就不换行了
					          old=e.name.substring(start);
					        }else{
					          old=e.name.substring(start,end)+"\n";    
					         }
					           newStr+=old; //拼接字符串
					        }
					      }else{                                          //如果小于每行最多显示的字数就返回原来的字符串
					      newStr=e.name; 
					     }
					          newStr2+=e.percent+"%"+newStr;//添加百分号处理
						    return newStr2;
				  }

效果如下,每行最多显示的字数,超过八个字换行处理,主要代码自定义的get部分处理formatter
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值