最近使用echarts绘制了这样一幅柱状图+折线图,但是不满足客户需求,他们希望折线图是从坐标轴原点开始,最右侧结束,柱状图保持不变。经查证,xAxis的boundaryGap属性设置为false可以满足要求。
设置属性对比如下:
代码添加该属性后,柱状图也跟着变化了
经常尝试,使用一个x轴是无法满足条件,故此增加了一个x轴,效果如下:
而此时还并没有满足要求,需求是要从0开始,所以针对新加的x轴和对应的y轴数据,都进行了补0操作,最终效果如下
具体代码:
// 获取图例数据
var legend=[];
if(undoneCountMap.legend){
legend=undoneCountMap.legend;
}
// 获取数据集合
var seriesData=undoneCountMap.seriesData;
// 获取x轴坐标
var xAxiasdata=undoneCountMap.xAxiasdata;
var series=[];
if(legend){
for(var jj=0;jj<legend.length;jj++){
if(jj==0){
var seriesObj={};
seriesObj.name=legend[jj];
seriesObj.type="bar";
if(seriesData.length>jj){
seriesObj.data=seriesData[jj]
}
seriesObj.barCategoryGap="0%";
var itemStyle = { //上方显示数值
normal: {
borderColor:'#5F5F5F',//边框颜色
//color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);},
// 定制显示(按顺序)
color: function(params) {
var colorList = ['#EFE42A','#64BD3D','#EE9201','#29AAE3', '#B74AE5','#0AAF9F','#E89589','#16A085','#4A235A','#C39BD3 ','#F9E79F','#BA4A00','#ECF0F1','#616A6B','#EAF2F8','#4A235A','#3498DB','#C33531' ];
return colorList[params.dataIndex]
},
label: {
show: true, //开启显示
position: 'top', //在上方显示
textStyle: { //数值样式
color: 'black',
fontSize: 12
}
}
}
}
seriesObj.itemStyle=itemStyle;
series.push(seriesObj);
}else{
var itemStyle = { //上方显示数值
normal: {
label: {
show: true, //开启显示
position: 'top', //在上方显示
textStyle: { //数值样式
color: 'black',
fontSize: 16
}
}
}
}
var seriesObj={};
seriesObj.name=legend[jj];
seriesObj.type="line";
seriesObj.yAxisIndex=1;
seriesObj.xAxisIndex=1;
if(seriesData.length>jj){
var seriesData1=[]
seriesData1.push(0);
seriesData1=seriesData1.concat(seriesData[jj]);
seriesObj.data=seriesData1;
}
seriesObj.itemStyle=itemStyle;
series.push(seriesObj);
}
}
}
var xAxiasdata1 = []
xAxiasdata1.push(0);
xAxiasdata1=xAxiasdata1.concat(xAxiasdata);
// 渲染柏拉图
var undoneCountChart = echarts.init(document.getElementById("undoneCountChart"));
undoneCountChartOption = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
toolbox: { //可视化的工具箱
show: true,
feature: {
saveAsImage: {//保存图片
show: true
}
}
},
grid:{
left:'10%',
bottom:'10%',
containLabel:true
},
legend: {
data: legend
},
xAxis: [
{
type: 'category',
data: xAxiasdata,
axisPointer: {
type: 'shadow'
},
axisLabel:{
interval: 0,
rotate: 12
}
},
{
type: 'category',
data: xAxiasdata1,
boundaryGap: false,
axisLabel:{
show:false
}
}
],
yAxis: [
{
type: 'value',
min: 0,
max: undoneCountTotal,
//interval: 5,
axisLabel: {
formatter: '{value}'
}
},
{
type: 'value',
min: 0,
max: 100,
interval: 10,
axisLabel: {
formatter: '{value} %'
}
}
],
series: series
};
undoneCountChart.clear();
undoneCountChart.setOption(undoneCountChartOption);重点修改部分解析:
1、系列数据对应x轴下标;系列数据前面填充0;
2、新增x轴数据,并且填充0
3、设置x轴数据,设置boundaryGap属性为false











还没有评论,来说两句吧...