使用morris.js製作折線圖 方法

Morris.js 是一個輕量級的 JS 庫,使用 jQuery 和 Raphaël 來生成各種時序圖。它的優點就是輕巧好用,上手也比較簡單。

Morris.js 的使用方法

 Step1. 導入相應的 js 和 css 文件

	<script th:src="@{/assets/global/plugins/bootstrap-morris/js/morris.min.js}" type="text/javascript"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
        <link href="../assets/global/plugins/bootstrap-morris/css/morris.css" rel="stylesheet" type="text/css" />

注意:沒有引用 jquery 的 js 一定要先把 jquery 的 js 引進來。

Step2.  在頁面中添加元素

	                     <div class="box box-info">
					<div class="box-header with-border">
						<h4 class="box-title">用戶增長曲線</h4>

					</div>
					<div class="box-body chart-responsive">
						<div class="chart" id="line-chart" style="height: 300px;"></div>
					</div>
				</div>

Step3. 寫js代碼,參考實例如下:

// 	 ajax請求從後臺獲取數據	
	 $.ajax({
			type : "GET",
			url : "/dashboard/chart",
			contentType : "application/x-www-form-urlencoded",
			dataType : "JSON",
			async : false,
			success : function(result) {
				//使縱座標顯示的沒有小數
				var yMaxVal = result[result.length-1].sum;
				
				for(var i=0;;i++){
				    
					if(yMaxVal %2 !== 0){
						
						yMaxVal = yMaxVal + 1;
					
					}else{
						
						if((yMaxVal/2)%2 !== 0){
							
							yMaxVal = yMaxVal + 2 ;
						}else{
							break;
						}
					}
				}
				
				var yMax = "auto"+" "+yMaxVal;
				var line = new Morris.Line({
					element : 'line-chart',
					resize : true,
					data : result,
					xkey : 'createTime',
					ykeys : 'sum',
					labels : [ '用戶人數' ],
					lineColors : [ '#3c8dbc' ],
					hideHover : 'true',
					ymax : yMax ,
					ymin : "auto 0"
				});
			},
			error : function() {
				bootbox.alert("服務器異常");
			}
		});

Morris.js參數說明:

element(必填):要放置圖標區域的id
data(必填):圖表的數據(就是從後臺返回的數據)
xkey(必填):要顯示在x軸的數據的名稱(x軸只能放置時間格式的數據,允許的時間格式有 2018, 2018 Q1, 2018 W1, 2018-07-13, 2018-07-13, 2018-07-13 16:55, 2018-07-13 16:55:00, 2018-07-13 16:55:00.000 等格式)
ykeys(必填):要是在y軸的數據的名稱
labels(必填):對應ykeys的描述名稱
linewidth(選填):線的寬度 單位是px 默認值爲3
pointSize(選填):點(x軸數據和y軸數據的交點)的半徑,單位px 默認值爲4
lineColors(選填):線和點的顏色陣列 默認值['#0b62a4', '#7A92A3', '#4da74d', '#afd8f8', '#edc240', '#cb4b4b', '#9440ed']
ymax(選填):y軸的最大值。可以設置爲"auto" 讓 morris.js 自動計算也可以設置爲 "auto 數字"來確保y軸的最大值 默認值爲auto
ymin(選填):y軸的最小值。可以設置爲"auto" 讓 morris.js 自動計算也可以設置爲 "auto 數字"來確保y軸的最小值 默認值爲"auto 0"
smooth(選填):設置線是否有弧度 false沒有弧度 true有弧度 默認爲true
hideHover(選填):設置鼠標滑出時提示框是否隱藏 true則立即隱藏 false則不隱藏 默認爲false
parseTime(選填):設置根據x軸的數據來產生相應的時間間距 false則時間間距相同 默認爲true
units(選填):y軸的單位 默認無
dataFormat(選填): 把毫秒轉換成時間字符串 默認爲:function (x) { return new Date(x).toString(); }
marginTop(必填):圖表區域的上方邊距 默認值爲25
marginRigth(必填):圖表區域的右邊邊距 默認值爲25
marginBottom(必填):圖表區域的下方邊距 默認值爲30
marginLeft(必填):圖表區域的左邊邊距 默認值爲25
numLines(必填):圖表y軸要切成幾等份
gridLineColor(選填): 圖表y軸要切成幾等份的線的顏色 默認值爲:#aaa
gridTextColor(選填):圖表y軸和x軸上的文字顏色 默認值:#888
gridTextSize(選填): 圖表x軸和y軸上的文字的大小 單位是px 默認值爲12
gridStorkeWidth(選填): 圖表y軸要切成幾等份的線的寬度 單位是px 默認值是0.5
hoverPaddingY(選填): 提示信息框的上下文內距 默認值 5
hoverMargin(選填):提示信息框的邊距 默認值 10
hoverBorderColor(選填):提示信息框的邊框顏色  默認值爲 #ccc
hoverBorderWidth(選填):提示信息框的邊框寬度 默認值爲 2 
hoverOpacity(選填): 提示信息框的不透明度 默認值爲0.5 
hoverLabelColor(選填): 提示信息框文字的顏色 默認值爲 #444
hoverFontSize(選填): 提示信息框的文字大小

注:我從後臺返回的數據格式爲[{createTime:'2018-06-12' ,sum:0},{createTime:'2018-06-13' ,sum:0}] 

效果圖如下:




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