一、bug記錄:
1.yAxis中 boundaryGap:false, //坐標軸兩邊留白策略這個參數設置false時 表示柱狀圖和坐標軸無縫銜接,會出現當鼠標放在最下面和最上面的兩個柱狀圖時,柱狀圖隱藏的狀態,不知道為啥,但是就是這個配置導致的,刪掉或者true就好了。

2.echart中toolTip是div 設置的層級z-index:9999999;所以自定義彈窗要記得設置z-index要大於toolTip的層級。
二、使用過程中配置的使用記錄:
1.設置柱狀圖和y軸有一定的距離,如下圖所示柱狀圖與Y軸距離太近
解決:xAxis:{boundaryGap:true,}//是否與坐標軸之間留白 默認是true 當時解決多列title顯示不全的時候設置了false 導致問題出現,改成false即可。
下面X軸文字想要調整與y軸的距離:textStyle: {padding:[0,0,0,20]} 設置padding的值就可以了准尋上右下左的規律

2,標簽過多顯示不全的問題:
方法a:文字傾斜
axisLabel: {//解決標簽過多顯示不全
interval:0,
rotate:30,
}
方法2:文字豎排顯示
axisLabel: {
interval: 0,
formatter:function(value)
{
return value.split("").join("\n");
}
},

3.正負柱顯示單位時要和x軸顯示位置一致,如上圖所示
解決:
xAxis: {
type : 'category',
name:"/月",
nameLocation:"middle",
nameGap:-10, //組合起來控制name的位置
nameTextStyle:{
//定位坐標軸名稱位置,獲取當前echart的div的寬度減去合理的值
padding:[0,0,0,$("#year_revenue_echart").width()-80]
},
}
相對完整的代碼如下所示
1.需求實現圖:正負柱不同顏色顯示,並且未到最大值的 用陰影補全顯示。

代碼實現:
<div class="echart"> <div id="totle_revenue_echart" style="width: 100%;height:300px;"></div> <div id="year_revenue_echart" style="width: 100%;height:300px;"></div> </div>
// 初始化echart
var totle_revenue_echart = echarts.init(document.getElementById("totle_revenue_echart"));
var option = {
tooltip : {//懸浮窗設置
trigger: 'axis',
formatter:function(params) {//自定義文字提示
return params[0].name+"<br />"+"總收益:"+params[0].value;
},
axisPointer : { // 坐標軸指示器,坐標軸觸發有效
type : 'shadow', // 默認為直線,可選為:'line' | 'shadow'
lable:{
textShadowColor:"red",
width:"1px",
height:"1px"
},
shadowStyle:{
shadowOffsetX:0.5,
shadowOffsetY:0.5,
shadowBlur:0.5,
opacity:0.5
},
}
},
grid: {//設置表格的位置
top: "15px",
left:"-10px",
containLabel: true
},
xAxis: {
show:false
},
yAxis: {//y軸線
type : 'category',
left:"0",
axisLine: {
show: true,
onZero:true,
lineStyle:{
color:"#E9ECED",
}
},
axisTick: {show: false},//刻度線
axisLabel: {
show:true,
// interval:0,//解決標簽過多顯示不全
// rotate:30,
align:'left',
margin:60,
formatter:function (data,i) {//自定義設置y軸刻度名
var arry =[100,30,200,-50,20];
return data+" "+arry[i];
}
},
data:["現金","股票","理財","兩融","期權"],
nameGap:30,
inverse:false,//坐標軸名稱是否反相顯示
boundaryGap:false, //坐標軸兩邊留白策略(解決坐標軸名字顯示不全)
axisPointer:{
show:true,
lable:{
show:true,
precision:2,
formatter:function(data){
console.log(data);
}
}
}
},
series : [
{
name:"直接",
type:'bar',
stack:"one",
data:[9,8,-7,8,4],
barWidth : "15px",//設置條寬度
//配置樣式
itemStyle: {
//通常情況下:
normal: {
// barBorderRadius: [0,4,4,0],
color: function (data) {//設置正負顏色值
return data.value>=0?"#E82724":"#00A212";
}
}
}
},
{
name:"間接",
type:'bar',
stack:"one",
data:[0,1,0,1,5],
barWidth : "15px",//設置條寬度
//配置樣式
itemStyle: {
//通常情況下:
normal: {
// barBorderRadius: [0,4,4,0],
color: "#E9ECED"
}
}
},{
name:"補充",
type:'bar',
stack:"one",
data:[-7,-7,9,-7,-7],
barWidth : "15px",//設置條寬度
//配置樣式
itemStyle: {
//通常情況下:
normal: {
// barBorderRadius: [0,4,4,0],
color: "#E9ECED"
}
}
},
]
};
totle_revenue_echart.setOption(option);//添加數據
2.柱狀圖:柱狀圖顯示,軸線刻度名稱太長時也要顯示,單位加上

代碼實現:
//年度收益額走勢 // 初始化echart var year_revenue_echart = echarts.init(document.getElementById("year_revenue_echart")); option = { tooltip : { trigger: 'axis', axisPointer : { // 坐標軸指示器,坐標軸觸發有效 type : 'shadow', // 默認為直線,可選為:'line' | 'shadow' }, formatter:function(params) { console.log("params:",params[0]); return params[0].name+"月<br />"+"總收益:"+params[0].value; } }, xAxis: { type : 'category', name:"/月", // nameLocation:"end", nameTextStyle:{ //定位坐標軸名稱位置,和使用css中的padding功能一樣 padding:[0,0,0,-10] }, axisLine: {show: false}, axisTick: {show: false}, // data: ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","單位:元"], data: [1,2,3,4,5,6,7,8,9,10,11,12], boundaryGap:false, axisLabel: { show: true, //坐標軸的文字是否顯示 // interval:0, // rotate:30 , textStyle: { color: '#222', //坐標軸上的字體顏色 fontSize:'12' // 坐標軸字體大小 } }, }, grid: {//設置表格位置 top: "36px", left:"10%", containLabel: true }, yAxis: { name:"單位:元", nameTextStyle:{ color:"black", padding:[0,24,-10,0] }, axisLine: {show: false}, axisTick: {show: false} }, series: [{ name: '收益額', type: 'bar', data: [5000, 2772, 3006, 2210, 1770, 2420,4566, 2370, 3006, 2570, 1770, 2420], barWidth : "10px",//設置條寬度 //配置樣式 itemStyle: { normal: { //通常情況下: barBorderRadius: [4, 4, 0, 0],//設置圓角 color: function (data) {//設置正負顏色值 return data.value>=0?"#E82724":"#00A212"; }
// color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{//為柱狀圖設置漸變色
// offset: 0,
// color: "#FF6969" // 0% 處的顏色
// }, {
// offset: 1,
// color: "#FF3838" // 100% 處的顏色
// }], false)
} } }] }; year_revenue_echart.setOption(option);//添加數據 // year_revenue_echart.showLoading();//數據加載的時候loading


