我拆过的坑cycx

查询一下!

echarts图表x轴字数没显示全,导致丢失

看图,有问题的

echarts01

解决之后,倾斜显示全部内容,也可以显示两行文字内容

echarts

局部代码


xAxis: {

type: 'category',

axisLabel:{

// 有的如果只需要显示全部,不倾斜只设置 interval:0 就可以

interval: 0, // 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。

rotate: '45', // 刻度标签旋转的角度

lineHeight: 18, // 行高

formatter : function(params){ // ***重点就是这儿***

var newParamsName = "";// 最终拼接成的字符串

var paramsNameNumber = params.length;// 实际标签的个数

var provideNumber = 10;// 每行能显示的字的个数

var rowNumber = Math.ceil(paramsNameNumber / provideNumber);// 换行的话,需要显示几行,向上取整

/**

* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签

*/

// 条件等同于rowNumber>1

if (paramsNameNumber > provideNumber) {

/** 循环每一行,p表示行 */

for (var p = 0; p < rowNumber; p++) {

var tempStr = "";// 表示每一次截取的字符串

var start = p * provideNumber;// 开始截取的位置

var end = start + provideNumber;// 结束截取的位置

// 此处特殊处理最后一行的索引值

if (p == rowNumber - 1) {// 最后一次不换行

tempStr = params.substring(start, paramsNameNumber);

} else {// 每一次拼接字符串并换行

tempStr = params.substring(start, end) + "\n";

}

newParamsName += tempStr;// 最终拼成的字符串

}

} else {

// 将旧标签的值赋给新标签

newParamsName = params;

}

//将最终的字符串返回

return newParamsName

}

},

data: data.data.map((item) => item.name)

},

全部


<div id="echartsCall_ranking2" style="width: 100%;height: 364px;"></div>

// 数据类型

let devNeedData =[

{name: "余三三", value: 13}, {name: "伊三三", value: 12}, {name: "李三三", value: 10.5},

{name: "杨三三黄三三黄三三黄三三黄三三", value: 11.5},{name: "丁三三", value: 10.5},{name: "李三三", value: 12},

{name: "黄三三", value: 9.5},{name: "刘X", value: 12.5},{name: "李X", value: 12},

{name: "郑三三", value: 7.5},{name: "盛三三", value: 13},{name: "林三三", value: 9.5},

{name: "黄三三", value: 13.5},{name: "黄三三", value: 11},{name: "刘三三", value: 12},

{name: "凌三三", value: 3.7}, {name: "任三三", value: 0.5}, {name: "彭X", value: 0.5}

]// 普通-柱状图

var chartFnc = {

init: function() {

this.initBar2('echartsCall_ranking2', {

title: {

text: '开发人员实际需求故事点',

left: '40%',

bottom: '0',

textStyle: {

fontSize: '14'

}

},

grid: {

left: '3%',

right: '5%',

bottom: '5%',

containLabel: true

},

markLine: {

data: [{ type: 'average', name: '平均值' }]

},

data: devNeedData

})

},

initBar2(id, data) {

var chartDom = document.getElementById(id)

var myChart = echarts.init(chartDom)

var option

option = {

title: data.title,

grid: data.grid || {},

xAxis: {

type: 'category',

axisLabel:{

// 有的如果只需要显示全部,不倾斜只设置 interval:0 就可以

interval: 0, // 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。

rotate: '45', // 刻度标签旋转的角度

lineHeight: 18, // 行高

formatter : function(params){ // ***重点就是这儿***

var newParamsName = "";// 最终拼接成的字符串

var paramsNameNumber = params.length;// 实际标签的个数

var provideNumber = 10;// 每行能显示的字的个数

var rowNumber = Math.ceil(paramsNameNumber / provideNumber);// 换行的话,需要显示几行,向上取整

/**

* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签

*/

// 条件等同于rowNumber>1

if (paramsNameNumber > provideNumber) {

/** 循环每一行,p表示行 */

for (var p = 0; p < rowNumber; p++) {

var tempStr = "";// 表示每一次截取的字符串

var start = p * provideNumber;// 开始截取的位置

var end = start + provideNumber;// 结束截取的位置

// 此处特殊处理最后一行的索引值

if (p == rowNumber - 1) {// 最后一次不换行

tempStr = params.substring(start, paramsNameNumber);

} else {// 每一次拼接字符串并换行

tempStr = params.substring(start, end) + "\n";

}

newParamsName += tempStr;// 最终拼成的字符串

}

} else {

// 将旧标签的值赋给新标签

newParamsName = params;

}

//将最终的字符串返回

return newParamsName

}

},

data: data.data.map((item) => item.name)

},

yAxis: {

type: 'value'

},

series: [

{

data: data.data.map((item) => item.value),

type: 'bar',

// barMaxWidth: 20,//最大柱图宽度

label: {

show: true,

position: 'top'

},

markLine: data.markLine || {}

}

]

}

myChart.setOption(option);

},

chartFnc.init();// 初始化图表组件

});


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.