Chart.js 學習筆記

        這是一個非常好用,簡單明瞭的圖表製作框架,這裏就講一下基礎的Chart.js使用。需要注意的是Bootstrap上的Chart.js網站的文檔是1.x版本的,現在的是2.x版本的,用法上會有極大的不同,所以千萬不要看Bootstrap上的中文文檔,直接去官網http://www.chartjs.org/看就行。

        用法上其實很簡單,HTML用<canvas>標籤,然後在JS中初始化這個標籤的元素,然後再用JS配置參數即可,主要是JS配置參數,別的都是死的。需要注意的是決定這個圖表的尺寸,是用包裹<canvas>的外層div的width屬性來決定的,只需要修改width屬性,高度自適應。直接修改<canvas>的寬高並沒有什麼卵用。

        然後HTML和JS初始化都統一放在這裏,後面的文章就只講配置的參數了,配置的參數在初始化後面接下去寫就可以了。

<body>
	<div>
		<!-- chart.js的HTML元素 -->
		<canvas id="demoChart"></canvas>
	</div>

<script>
// 初始化這個chart HTML元素
var chartInit = $('#demoChart').get(0).getContext("2d");
</script>
</body>

 

一、折線圖(line)

1. 參數代碼樣例

new Chart(chartInit, {
	 type: 'line'
	,data: {
		 labels: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'June.', 'July.', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec']
		,datasets: [{
			 label: '工資'
			,borderWidth: 2
			,borderColor: 'rgba(30, 144, 255, 1)'
			,backgroundColor: 'rgba(30, 144, 255, 0.7)'
			,data: [3500, 3000, 4000, 3700, 3200, 3500, 3400, 3600, 3200, 3500, 3800, 6800]
		}]
	},
	// 加了這個x軸, y軸最低數據就從0開始算, 不加就從最低的那個數據開始算
	options: {
        scales: {
            yAxes: [{
                ticks: {
                    min: 0
                }
            }]
        }
    }
});

 

1.1 參數代碼實現

(圖片模糊可以右鍵-在新標籤頁中打開圖片

 

2. 參數說明

2.1 data-datasets屬性

Name Type Description
label String/String[] 每個數據對應的那個標題,比方說1-12月的折線圖,1月的數據是200,label就是1月,label是數組,也可以是字符串,看你的需求了。
xAxisID String 沒用過,不知道
yAxisID String 沒用過,不知道
backgroundColor Color 折線圖和x軸和y軸圈起來的區域的背景顏色
borderColor Color 折線的顏色。
borderWidth Number 折線的粗細,不寫就是0
borderDash Number[] 折線的虛線之間的距離[0]就是不寫,寫了就是虛線了,數組裏只設一個值,就是虛線和距離一樣長
borderDashOffset Number 折線的虛線之間的偏移量,非常細小的差距,改了都看不出來,比方說你這根虛線不想讓他的虛線到這個數據點上,那你就用這個往左移或者往右移(正負值)
borderCapStyle String

折線的虛線邊框風格:

'butt':默認(方角),

'round': 比默認兩端長出一點(圓角),

'square': 比默認兩端長出一點(方角),

具體可以參考官方文檔

borderJoinStyle String 折線折的那個角的風格:有三個值,參考官方文檔
cubicInterpolationMode String

可以填兩個值:'dafault'或'monotone',具體有什麼用不知道

fill Boolean/String 沒用過,不知道
lineTension Number 線的貝塞爾曲線張力,我理解是折線的彎曲度。可以是小數,我建議你在0-1之間取值,0是沒有曲線的折線,0.5應該是默認的,要是設20可能會有奇怪的驚喜。
pointBackgroundColor Color/Color[] 折線圖上的數據點的填充顏色
pointBorderColor Color/Color[] 折線圖上的數據點的邊框顏色
pointBorderWidth Number/Number[] 折線圖上的數據點的邊框寬度
pointRadius Number/Number[] 折線圖上的數據點的大小
pointStyle String/String[]/Image/Image[]

折線圖上的數據點的風格

'circle': 圓圈

'cross': 一條小橫槓

'crossRot': 一個叉(×)

'dash': 還是一條橫槓,點的右邊多一點

'line': 還是一條橫槓,點在中間,兩邊一樣多

'rect': 正方形

'rectRounded': 圓角矩形

'rectRot': 菱形的正方形

'star': 看起來像"*",反正不會是好看的五角星

'triangle': 正三角形

使用自定義圖片請參考官方文檔

pointHitRadius Number/Number[] 對鼠標做出反應的顯示數據點的大小,比方說你設置了pointRadius的大小很大,但是這個屬性沒有設置,就是說你鼠標移上去,要移到中間纔會有數據看到,那用戶體驗肯定很不OK了。
pointHoverBackgroundColor Color/Color[] 鼠標移到折線圖的數據點上時點的背景顏色
pointHoverBorderColor Color/Color[] 鼠標移到折線圖的數據點上時點的邊框顏色
pointHoverBorderWidth Number/Number[] 鼠標移到折線圖的數據點上時點的邊框寬度
pointHoverRadius Number/Number[] 鼠標移到折線圖的數據點上時點的大小
showLine Boolean 是否顯示折線,當爲false的時候,線不顯示,但是點還在的
spanGaps Boolean

false: 默認,如果一個標籤的數據是null或者沒有值,就會出現斷層,從下一個有值的數據點開始繼續顯示折線圖

true: 如果一個標籤的數據是null或者沒有值,折線會做彌補處理,繼續劃線到下一個有值的數據點上,但是這個標籤的數據點是沒有的

steppedLine Boolean/String

false: 默認

true: 折線圖變成階梯折線

'before': 數據點在階梯矩形的左邊

'after': 數據點在階梯矩形的右邊

 

二、柱狀圖(bar)

1. 參數代碼樣例

new Chart(chartInit, {
	 type: 'bar'
	,data: {
		 labels: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'June.']
		,datasets: [{
			 label: '工資'
			,borderWidth: 2
			,borderColor: 'rgba(30, 144, 255, 1)'
			,backgroundColor: 'rgba(30, 144, 255, 0.7)'
			,data: [3500, 3000, 4000, 3700, 3200, 3500]
		}]
	},
	options: {
		scales: {
            yAxes: [{
                ticks: {
                    min: 0
                }
            }]
        }
    }
});

 

1.1 參數代碼實現

(圖片模糊可以右鍵-在新標籤頁中打開圖片

 

2. 參數說明

2.1 data-datasets屬性

Name Type Description
label String 你傳的數據的標題
xAxisID String 沒用過,不知道
yAxisID String 沒用過,不知道
backgroundColor Color/Color[] 柱子的背景顏色
borderColor Color/Color[] 柱子的邊框顏色,需要注意的是要和下面的屬性配合使用,不然就會無效
borderWidth Number/Number[] 柱子邊框粗細
borderSkipped String

用了不知道啥效果,總共4個值

'bottom': ,

'left': ,

'top': ,

'right': ,

hoverBackgroundColor Color/Color[] 鼠標移上去時顯示的背景色
hoverBorderColor Color/Color[] 鼠標移上去時顯示的邊框色
hoverBorderWidth Number/Number[] 鼠標移上去時顯示的邊框粗細

 

2.2 type屬性

'bar': 默認豎的柱狀圖,

'horizontalBar': 橫過來的柱狀圖

 

三、雷達圖(radar)

或者叫蛛網圖

1. 參數代碼樣例

new Chart(chartInit, {
	 type: 'radar'
	,data: {
		 labels: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'June.', 'July.', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec']
		,datasets: [{
			 label: '胖虎工資'
			,borderWidth: 2
			,borderColor: 'rgba(30, 144, 255, 1)'
			,backgroundColor: 'rgba(30, 144, 255, 0.7)'
			,data: [3500, 3000, 4000, 3700, 3200, 3500, 3400, 3600, 3200, 3500, 3800, 6800]
		},{
			 label: '靜香工資'
			,borderWidth: 2
			,borderColor: 'rgba(0, 0, 0, 1)'
			,backgroundColor: 'rgba(0, 0, 0, 0.7)'
			,data: [3000, 3200, 4100, 3200, 3000, 3200, 3100, 3300, 3000, 3100, 3600, 5800]
		}]
	},
	options: {
		// 需要特別注意的是: 這裏的scale沒有s
		scale: {
			ticks: {
				 min: 0
			}
        }
    }
});

 

1.1 參數代碼實現

 

2. 參數說明

2.1 data-datasets屬性

Name Type Description
label String 數據或數據集的標題
backgroundColor Color 雷達線包圍區域的背景色
borderColor Color 雷達線顏色
borderWidth Number 雷達線粗細
borderDash Number[] 雷達線虛線長度和虛線距離,數組裏只設一個值,就是虛線和距離一樣長
borderDashOffset Number 雷達線虛線的偏移量,左移或右移,很細微的差距
borderCapStyle String

雷達線的虛線邊框風格:

'butt':默認(方角),

'round': 比默認兩端長出一點(圓角),

'square': 比默認兩端長出一點(方角),

具體可以參考官方文檔

borderJoinStyle String 雷達線折的那個角的風格:有三個值,參考官方文檔
fill Boolean/String 沒用過,不知道
lineTension Number 線的貝塞爾曲線張力,我理解是雷達線的彎曲度。可以是小數,我建議你在0-1之間取值,0是沒有曲線的折線,0.5應該是默認的,要是設20可能會有奇怪的驚喜。
pointBackgroundColor Color/Color[] 數據點背景色
pointBorderColor Color/Color[] 數據點邊框色
pointBorderWidth Number/Number[] 數據點邊框粗細
pointRadius Number/Number[] 數據點大小
pointStyle String/String[]/Image/Image[]

雷達圖上的數據點的風格

'circle': 圓圈

'cross': 一條小橫槓

'crossRot': 一個叉(×)

'dash': 還是一條橫槓,點的右邊多一點

'line': 還是一條橫槓,點在中間,兩邊一樣多

'rect': 正方形

'rectRounded': 圓角矩形

'rectRot': 菱形的正方形

'star': 看起來像"*",反正不會是好看的五角星

'triangle': 正三角形

使用自定義圖片請參考官方文檔

pointHitRadius Number/Number[] 對鼠標做出反應的數據點大小
pointHoverBackgroundColor Color/Color[] 鼠標移上去時數據點背景色
pointHoverBorderColor Color/Color[] 鼠標移上去時數據點邊框色
pointHoverBorderWidth Number/Number[] 鼠標移上去時數據點邊框粗細
pointHoverRadius Number/Number[] 鼠標移上去時數據點大小

 

四、餅圖(pie)和甜甜圈圖(doughnut)

或者叫環形餅圖、麪包圖,但是我還是喜歡叫甜甜圈圖:)

1. 參數代碼樣例

new Chart(chartInit, {
	 type: 'doughnut'// or 'pie'
	,data: {
		 labels: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'June.']
		,datasets: [{
			 label: '工資'
			,borderWidth: 0
			,backgroundColor: ['red', 'orange', 'yellow', 'green', 'cyan', 'blue']
			,data: [3500, 3000, 4000, 3700, 3200, 3500]
			,lineTension: 1
		}]
	},
});

 

1.1 參數代碼實現

 

參數說明:

 

// 時間關係,今天就寫到這,後面補上

// 其實有些不是沒用過,是用了不知道哪裏變了,希望有知道的小夥伴可以告訴我,謝謝大家!

// 我現在發現還有個更好的框架叫EChart.js,是百度出的,中文文檔,功能齊全,所以我打算去看看那個,這個先不寫了,不過這個也是有優點的,因爲他比較小,流暢,如果用戶對圖表沒有太大的要求,那就可以用這個了。

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