數據可視化(Echart) :柱狀圖、折線圖、餅圖等六種基本圖表的特點及適用場合


數據可視化(Echart)

柱狀圖、折線圖、餅圖等六種基本圖表的特點及適用場合

  • 參考網址

  • 效果圖

  • 源碼

      <!DOCTYPE html>
      <html>
    
      <head>
      <meta charset="utf-8">
      <title>ECharts</title>
      <!-- 引入 echarts.js -->
      <script src="js/echarts.min.js"></script>
      </head>
    
      <body>
      <!-- 為ECharts准備一個具備大小(寬高)的Dom -->
      <div id="main" style="width: 600px;height:400px;"></div>
    
      <div id="main2" style="width: 600px;height:400px;left: 700px;top: 0px;position: absolute;"></div>
    
      <div id="main3" style="width: 600px;height:400px;left: 0px;top: 400px;position: absolute;"></div>
    
      <div id="main4" style="width: 600px;height:400px;left: 700px;top: 400px;position: absolute;"></div>
    
      <script type="text/javascript">
      	//模擬后台傳來的json
      	var jsondata =
      		'{"sales":[{"name":"襯衫","num":"70"},{"name":"羊毛衫","num":"27"},{"name":"褲子","num":"36"},{"name":"高跟鞋","num":"18"},{"name":"襪子","num":"85"},{"name":"棉襖","num":"105"}]}';
      	var jsonobj = JSON.parse(jsondata);
    
      	//獲取json中的數值	
      	var dataName = [];
      	var dataNum = [];
      	var temp = jsonobj;
    
      	//匿名函數解析json串中的數值,關鍵點
      	(function() {
      		for(var i = 0; i < temp.sales.length; i++) {
      			dataName.push(temp.sales[i].name);
      			dataNum.push(temp.sales[i].num);
      		}
      	})();
    
      	// 基於准備好的dom,初始化echarts實例
      	var myChart = echarts.init(document.getElementById('main'));
      	var myChart2 = echarts.init(document.getElementById('main2'));
    
      	//折線圖
      	var option = {
      		title: {
      			text: '衣物銷量統計'
      		},
      		tooltip: {},
      		legend: {
      			data: ['銷量']
      		},
    
      		xAxis: {
      			//x軸字體顏色
      			/*axisLine: {
      				lineStyle: {
      					color: '#C50023'
      				}
      			},*/
    
      			data: dataName,
      		},
      		yAxis: [{
      			//定義y軸最大與最小值
      			min: 0,
      			max: 120,
      			type: 'value',
      			name: '日銷量(萬)',
      			splitNumber: 5
      		}],
    
      		series: [{
    
      			//折線上數字
      			/* label: {
      			     normal: {
      			         show: true,
      			         position: 'top',
      			         formatter:100
      			     }
      			 },*/
    
      			// 折線顏色
      			/*itemStyle: {
      				normal: {
      					//線上。的顏色
      					color: '#33CCFF',
      					lineStyle: {
      						//線的顏色
      						color: '#33CCFF'
      					}
      				}
      			},*/
    
      			//頂上小圖標名稱
      			name: '銷量',
      			type: 'line',
      			data: dataNum,
    
      			//平均值
      			markLine: {
      				data: [{
      					type: 'average',
      					name: '平均值'
      				}]
      			},
    
      		}]
      	};
    
      	myChart.setOption(option);
    
      	//柱狀圖
      	// 指定圖表的配置項和數據
      	var option2 = {
      		title: {
      			text: '衣物銷量統計'
      		},
      		tooltip: {},
      		legend: {
      			data: ['銷量']
      		},
      		xAxis: {
      			data: dataName,
      		},
      		yAxis: {
      			type: 'value',
      			name: '日銷量(萬)',
      			splitNumber: 5
      		},
      		series: [{
      			name: '銷量',
      			type: 'bar',
      			//柱狀寬度
      			barWidth: 20,
      			data: dataNum,
      		}]
      	};
      	// 使用剛指定的配置項和數據顯示圖表。
      	myChart2.setOption(option2);
    
      	//餅狀圖
      	echarts.init(document.getElementById('main3')).setOption({
      		title: {
      			text: '衣物銷量統計',
      			subtext: '日銷量(萬)',
      			x: 'center',
      			//背景色
      			//backgroundColor:'rgba(12,121,123,0.1)'
      		},
      		series: [{
      			name: '詳情',
      			type: 'pie',
    
      			//餅狀圖的大小
      			//radius : '55%',
    
      			center: ['50%', '60%'],
      			data: (function() { //餅狀圖需要函數解析數字內的值
      				var res = [];
      				var len = dataName.length;
      				while(len--) {
      					res.push({
      						name: dataName[len],
      						value: dataNum[len]
      					});
      				}
      				return res;
      			})()
      		}]
      	})
    
      	echarts.init(document.getElementById('main4')).setOption({
      		title: {
      			text: '衣物銷量統計'
      		},
      		tooltip: {},
      		legend: {
      			data: ['銷量']
      		},
      		xAxis: {
      			data: ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]
      		},
      		yAxis: {
      			type: 'value',
      			name: '日銷量(萬)',
      			min: 0,
      			max: 4,
      			axisLabel: {
      				formatter: function(value) {
      					var texts = [];
      					if(value == 0) {
      						texts.push('woo');
      					} else if(value <= 1) {
      						texts.push('好');
      					} else if(value <= 2) {
      						texts.push('很好');
      					} else if(value <= 3) {
      						texts.push('非常好');
      					} else {
      						texts.push('完美');
      					}
      					return texts;
    
      				}
      			}
      		},
      		series: [{
      			name: '銷量',
      			type: 'bar',
      			//柱狀寬度
      			//barWidth: 20,
      			data: [1, 4, 2, 3, 2, 0]
      		}]
      	})
      	</script>
      </body>
      </html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM