有两个问题;第一个是y轴的最大值和数据最大值一样大;应该留有余地;由于数据量较大;所以加了缩放轴;
第二个问题是;在echarts2版本中缩放的时候没有问题;但是在3中缩放出现了错位问题;
注意:固定y轴最大值会有当前显示中数据较小而y轴坐标数据过大的问题;想了很长时间找不到方法;求大神
echarts2的链接:
http://echarts.baidu.com/echarts2/doc/example/bar12.html
配置项如下
var data={
"company_name": [
"总公司",
"一公司",
"二公司",
"三公司",
"四公司"
],
"a1": [
{
"m": 3713.78,
"value": 6000
},
{
"m": 3697,
"value": 6000
},
{
"m": 0,
"value": 0
},
{
"m": 0,
"value": 0
},
{
"m": 0,
"value": 0
}
],
"a2": [
{
"m": 6000,
"value": 3733.78
},
{
"m": 6000,
"value": 3797.55
},
{
"m": 0,
"value": 0
},
{
"m": 0,
"value": 0
},
{
"m": 0,
"value": 0
}
]
}
var option = {
title : {
text: "多系列层叠图",
textStyle:{
fontWeight:'normal'
}
},
tooltip : {
trigger: 'axis',
textStyle:{
align:"left"
},
formatter: function(p){
if(p[0].seriesName=="年度目标"){
return p[0].name +'<br/>'+p[0].seriesName+':'+ p[0].value+'万元<br/>已完成:'+p[0].data.m+'万元';
}else{
return p[0].name +'<br/>年度目标:'+p[0].data.m+'万元<br/>'+p[0].seriesName+':'+ p[0].value+'万元';
}
}
},
legend: {
data:[
'目标',
'已完成'
]
},
toolbox: {
show : false,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : false,//禁止图形拖动
grid: {
y: 70, //y轴距离顶部距离;
y2:150, //y轴下方距离底部距离
x2:100 //x轴距离右侧距离
},
xAxis : [
{
type : 'category',
//axisLabel: {rotate: 60,interval: 0},
axisLabel:{
interval:0,
rotate:45,
margin:2,
textStyle:{
color:"#000"
}
},
data :data.company_name
},
{
type : 'category',
axisLine: {show:false},
axisTick: {show:false},
axisLabel: {show:false},
splitArea: {show:false},
splitLine: {show:false},
data :data.company_name
}
],
yAxis : [
{
type : 'value',
axisLabel:{formatter:'{value}'}
}
],
dataZoom : {
show : true,
realtime : true,
height: 20,
start : 0,
end : 100
},
series : [
{
name:'目标',
type:'bar',
barWidth:25,
xAxisIndex:1,
itemStyle: {normal: { label:{show:false}}},
data:data.a1
},
{
name:'已完成',
type:'bar',
barWidth:25,
itemStyle: {
normal: {
label:{show:true,
position:'insideBottom',
textStyle:{color:"#333333"},
formatter:function(p){
var a=p.data.m;
var b=p.value;
if(a<=0){
return "100%";
}else if(a>0 && b<=0){
return "0.00%";
}else if(a>0 && b>=0){
return parseFloat((b/a)*100).toFixed(2)+"%";
}
}
}
}},
data:data.a2
} ]
};