echart重疊圖表

今天接到一個任務,顯示重疊圖表,一開始在echart官網中找到具體列子,但是在本地測試時,發現樣式完全不一樣,猜測原因是版本的不同,後續又在網上查找原因,發現是一個屬性的設置原因。

先展示echart2實例與本地數據的差別:

對於相同的option設置:

echart2實例:



本地圖表顯示:


發現不同地方位置:首先是顏色不同,第二是實例中有重疊,本地沒有重疊;第三實例中柱狀圖上有顯示數據,本地沒有。


後來找到具體原因:缺少stack屬性。stack屬性是疊加,不是覆蓋。

後來添加上stack屬性的圖表:


代碼:

<label id='bar' style="height: 700px;right:50px;width:1600px;"></label>
<script type="text/javascript">
 	var myBar = echarts.init(document.getElementById('bar'));
	 option = {
		    title : {
		        text: 'xxx數據',
		        subtext: '(12月之內)',
		        left:150
		    },
		    tooltip : {
		        trigger: 'axis'
		    },
                    //重新修改legend默認顏色
                    //按照legend  data的順序排列,設置自定義顏色  
                    color:['#FF8800','#FFDDAA','#00FFFF','#99FFFF'],
		    legend: {
		        data:[]
		    },
		    toolbox: {
		        show : true,
		        feature : {
		            mark : {show: true},
		            dataView : {show: true, readOnly: false},
		            magicType : {show: true, type: ['line', 'bar']},
		            restore : {show: true},
		            saveAsImage : {show: true}
		        }
		    },
		    calculable : true,
		    grid: {y: 70, y2:30, x2:20},
		    xAxis : [
		        {
		            type : 'category',
		            data : []
		        },
		        {
		            type : 'category',
		            axisLine: {show:false},
		            axisTick: {show:false},
		            axisLabel: {show:false},
		            splitArea: {show:false},
		            splitLine: {show:false},
		            data : []
		        }
		    ],
		    yAxis : [
		        {
		            type : 'value',
		            axisLabel:{formatter:'{value}'}
		        }
		    ],
		    series : []
		}; 
                  
	myBar.setOption(option); 
	 var ajaxBar = function() {
		$.ajax({
			url : Global.ctx +'/xxx',
			success : function(responseText) {
				 console.log(responseText);
				 //請求成功時處理
				option.legend.data = responseText.datum.legend;
				option.xAxis[0].data = responseText.datum.xAxis;
				option.xAxis[1].data = responseText.datum.xAxis;
				var serieslist = responseText.datum.series;
				for (var i = 0; i < serieslist.length; i++) {
					option.series[i] = serieslist[i];
				}
				myBar.setOption(option, true);
			}, 
			 complete : function() {
				//請求完成的處理
			}, 
			 error : function() {
				//請求出錯處理
				alert("加載失敗");
			}
		}) 
	 } 
	
	 window.setTimeout(ajaxBar, 100); 
		                    
	</script>

ajax返回數據格式:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章