在 ECharts 發佈的 3.5 版本中,新增了日曆座標系,用於在日曆中繪製圖表。如何快速寫出一個日曆圖呢?javascript
經過如下三個步驟便可實現上述效果:html
下載的 最新完整版本 echarts.min.js 便可,無需再單獨引入其餘文件哦。java
<script src="echarts.min.js"></script>
<script> // ... </script>複製代碼
和ECharts中的其餘圖表同樣,建立一個DOM來做爲繪製圖表的容器:git
<div id="main" style="width=100%; height = 400px"></div>複製代碼
使用ECharts進行初始化:github
var myChart = echarts.init(document.getElementById('main'));複製代碼
以常見的日曆圖爲例: calendar 座標 + heatmap 圖:echarts
var option = {
visualMap: {
show: false,
min: 0,
max: 1000
},
calendar: {
range: '2017'
},
series: {
type: 'heatmap',
coordinateSystem: 'calendar',
data: [['2017-01-02', 900], ['2017-01-02', 877], ['2017-01-02', 699], ...]
}
}
myChart.setOption(option);複製代碼
在 heatmap 圖的基礎上,加上 coordinateSystem: 'calendar'
和 calendar: { range: '2017' }
,heatmap圖就秒變爲日曆圖了。dom
若發現圖表沒有正確顯示,你能夠檢查如下幾種可能:ui
- JS文件是否正確加載;
echarts
變量是否存在;- 控制檯是否報錯;
- DOM 元素在
echarts.init
的時候是否有高度和寬度。- 若爲
type: heatmap
,檢查是否配置了visualMap
。
附完整示例代碼spa
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<script src="echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:100%;height:400px;"></div>
<script type="text/javascript"> var myChart = echarts.init(document.getElementById('main')); // 模擬數據 function getVirtulData(year) { year = year || '2017'; var date = +echarts.number.parseDate(year + '-01-01'); var end = +echarts.number.parseDate(year + '-12-31'); var dayTime = 3600 * 24 * 1000; var data = []; for (var time = date; time <= end; time += dayTime) { data.push([ echarts.format.formatTime('yyyy-MM-dd', time), Math.floor(Math.random() * 10000) ]); } return data; } var option = { visualMap: { show: false, min: 0, max: 10000 }, calendar: { range: '2017' }, series: { type: 'heatmap', coordinateSystem: 'calendar', data: getVirtulData(2017) } }; myChart.setOption(option); </script>
</body>
</html>複製代碼
以上就是繪製最簡日曆圖的步驟了,如若還想進一步私人定製,還能夠經過自定義配置參數來實現。code
使用日曆座標繪製日曆圖時,支持自定義各項屬性:
range: 設置時間的範圍,可支持某年、某月、某天,還可支持跨年。
cellSize: 設置日曆格的大小,可支持設置不一樣高寬,還可支持自適應auto。
orient: 設置座標的方向,既能夠橫着也能夠豎着。
splitLine: 設置分隔線樣式,也能夠直接不顯示。
itemStyle: 設置日曆格的樣式,背景色、方框線顏色大小類型、透明度都可自定義,甚至還能加陰影。
dayLabel: 設置座標中 星期樣式,能夠設置星期從第幾天開始,快捷設置中英文、甚至是自定義中英文混搭、或局部不顯示、經過formatter 能夠想怎麼顯示就怎麼顯示。
monthLabel: 設置座標中 月樣式,和星期同樣,可快捷設置中英文和自定義混搭。
yearLabel: 設置座標中 年樣式,默認顯示一年,經過formatter 文字能夠想顯示什麼就能經過string function任性自定義,上下左右方位隨便選。
完整的配置項參數參見:calendar API
日曆座標系是一種新的 ECharts
座標系,提供了在日曆上繪製圖表的能力; 因此除了製做經常使用的日曆圖外,咱們能夠在熱力圖、散點圖、關係圖中使用日曆座標系。
在日曆座標系中使用熱力圖:代碼 + 效果地址
在日曆座標系中使用散點圖:代碼 + 效果地址
還能夠混合放置不一樣的圖表,例以下例子,同時放置了熱力圖和關係圖:代碼 + 效果地址
其餘更豐富的效果
靈活利用 ECharts
圖表和座標系的組合,以及 API,還能夠實現更豐富的效果。
例如,製做農曆:代碼 + 效果地址
例如,使用 chart.convertToPixel
接口,在日曆座標系繪製餅圖:代碼 + 效果地址
以上,簡單介紹了 ECharts 日曆座標系的一些基本用法,但願可以幫助你們。
更完整的配置項請參考 ECharts官網上 詳細的文檔,或者到 ECharts Gallery 上查看 日曆座標系做品。
還有,不少很好玩的圖表,你們能夠一塊兒來玩,解鎖新玩法~