echarts2 饼图处理标签文字过长使之达到指定字数换行的目的
2017-12-11 14:30
1676 查看
在使用echarts2的过程中,有时会遇到标签文字过长导致显示不完整的问题。例如:
这时候就需要用到 标签里的formatter 回调函数来处理这种情况了。
方式一: formatter : ' {b} : \n {c} \n ({d}%) ', 这种是指定某个地方换行。
备注:官方文档里面有{a},{b},{c},{d}的解释:
这里是饼图,所以 { b } 就是数据项的名称即:“直接访问”,“邮件营销直”等。
{ c }就是数据项下面的那个数值
{ d }就是下面的那个百分比
注意:在饼图里如果是tootip里面的formatter,那么 \n 要换成 <br />才能达到换行的效果。其它图没试过,不知道是否一样。
方式二:自定义函数来处理达到自定义每行个数再换行
然后在最外面定义一个函数表达式
结果为:
我使用的是echart2,不知道echart3的function(e)中 e 的内容是否一样。无论是条形图或者其他的图,换行的思路都是一样的,都是先获取名称再进行换行处理。
再补充一点:
要想让内容在饼图里并居中除了要处理换行之外,还需要添加如下四个属性:
如果想只每行一个字显示:
这时候就需要用到 标签里的formatter 回调函数来处理这种情况了。
方式一: formatter : ' {b} : \n {c} \n ({d}%) ', 这种是指定某个地方换行。
备注:官方文档里面有{a},{b},{c},{d}的解释:
这里是饼图,所以 { b } 就是数据项的名称即:“直接访问”,“邮件营销直”等。
{ c }就是数据项下面的那个数值
{ d }就是下面的那个百分比
注意:在饼图里如果是tootip里面的formatter,那么 \n 要换成 <br />才能达到换行的效果。其它图没试过,不知道是否一样。
方式二:自定义函数来处理达到自定义每行个数再换行
formatter:get, //调用get textStyle:{ //这只是为了让文字居中而已 align:"center", //水平对齐方式可选left,right,center baseline:"top", //垂直对齐方式可选top,bottom,middle },
然后在最外面定义一个函数表达式
var get=function(e){ var newStr=" "; var start,end; var name_len=e.name.length; //每个内容名称的长度 var max_name=4; //每行最多显示的字数 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; } return newStr; }
结果为:
我使用的是echart2,不知道echart3的function(e)中 e 的内容是否一样。无论是条形图或者其他的图,换行的思路都是一样的,都是先获取名称再进行换行处理。
再补充一点:
要想让内容在饼图里并居中除了要处理换行之外,还需要添加如下四个属性:
series:{ itemstyle:{ normal:{ label:{ position:"inner", //可选参数:外部 “outer” 和内部 “inner” textStyle:{ align:"center", baseline:"middle", }, }, lableLine:{ show:false //标签视觉引导线 不显示 } } } }
如果想只每行一个字显示:
formatter:function(e){ return e.split("").join("\n"); //这里的e直接就是字符串,如果不是的话,还需要获取到字符串再进行操作 }
相关文章推荐
- echarts图表里label文字过长换行的方法
- echarts x/y轴坐标文字过长解决办法-换行
- c# 单行文字过长,换行方法
- js中动态创建li标签或者其他inline标签,文字过多不自动换行
- Java,指定文字列,可以按照指定的文字数多行显示
- UILabel标签文字过长时的显示方式
- 将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字
- Echarts-axislabel文字过长导致显示不全或重叠
- css省略过长文字 自动换行 不换行
- 关于截取带html标签的文字的前n个字符的处理(需求一)
- 让Pre标签内的文字自动换行
- 截取指定长度的文字(包含对汉字的处理)
- 标签<view>文字自动换行
- C#删除UL LI中指定标签里文字的方法
- Java中在特定区间产生随机数 (2009-03-26 13:31:49)转载▼ 标签: 杂谈 生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试
- Echarts 标签过长如何让axisLabel换行
- Latex 表格内文字过长自动换行 & 表格内单元格内容强制换行
- 显示或隐藏客户端页面中包含指定文字的DIV 标签
- echarts x轴标签文字过多导致显示不全
- ASP lable标签显示过长,自动换行。