Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
著大數(shù)據(jù)時(shí)代的來臨,社會(huì)對(duì)大數(shù)據(jù)人才的需求也日益旺盛,自然少不了我們前端工程師,我們前端工程師能做什么呢?這個(gè)自然就是做大數(shù)據(jù)可視化了,數(shù)據(jù)再多,沒有很直觀的呈現(xiàn)那也是白搭。現(xiàn)在好多政府企事業(yè)單位對(duì)大屏可視化的項(xiàng)目需求日益旺盛,這無疑給我們前端工程更多的機(jī)會(huì),那我們?nèi)绾稳胧肿鲆豢钇两k麗的大數(shù)據(jù)看板呢。
這個(gè)案例是不是直觀呢:
是不是很高科技上檔次呢,在來看一段視頻的動(dòng)態(tài)效果:
<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
echarts正如官網(wǎng)所說,一個(gè)使用 JavaScript 實(shí)現(xiàn)的開源可視化庫,可以流暢的運(yùn)行在 PC 和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome,F(xiàn)irefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。
具有以下特點(diǎn):
更多介紹請(qǐng)查看官網(wǎng) https://www.echartsjs.com/zh/index.html
其實(shí)用到的技術(shù)很簡單,掌握基礎(chǔ)的前端就行
1、引用 echarts.min.js 文件2、準(zhǔn)備div容器
<div id="main"></div>
3、初始化 echart 實(shí)例
var myChart = echarts.init(document.getElementById('main'));
4、初始化圖表數(shù)據(jù),示例代碼如下
var option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line'
}]
};
5、顯示圖表
myChart.setOption(option);
本案例設(shè)計(jì)稿寬度是1920px,rem 初始基準(zhǔn)是24px。
1、如何做適配呢?
保持設(shè)備寬度與rem基準(zhǔn)值比例為 80 即可
2、這里用JS進(jìn)行初始化基準(zhǔn),窗口大小改變,就會(huì)進(jìn)行調(diào)整,示例代碼如下:
(function () {
// 1、頁面一加載就要知道頁面寬度計(jì)算
var setFont = function () {
// 因?yàn)橐x變量可能和別的變量相互沖突,污染,所有用自調(diào)用函數(shù)
var html = document.documentElement;// 獲取html
// 獲取寬度
var width = html.clientWidth;
// 判斷
if (width < 1024) width = 1024
if (width > 1920) width = 1920
// 設(shè)置html的基準(zhǔn)值
var fontSize = width / 80 + 'px';
// 設(shè)置給html
html.style.fontSize = fontSize;
}
setFont();
// 2、頁面改變的時(shí)候也需要設(shè)置
// 尺寸改變事件
window.onresize = function () {
setFont();
}
})();
注:計(jì)算式可能有小數(shù),很多位,保留3為有效小數(shù),不去除0
這個(gè)頁面局基于flex彈性盒子布局,其他的內(nèi)容都是基于原生的JS寫的,動(dòng)畫效果基于CSS3。
由于代碼比較多,就不在這一一列舉了,由于文章不太方便貼下載鏈接,那怎么獲取本案例的代碼呢?
Echarts 無論是制作省份地圖還是區(qū)縣域地圖,他們的步驟都是基本一樣的。
下面本人就 利用 Echarts 簡單繪制省份地圖 的步驟與經(jīng)驗(yàn)與各位分享一下。
<script type="text/javascript" src="/static/js/echarts.min.js"></script>
<script type="text/javascript" src="/static/js/jiangsu.js"></script>
<div>
{# 標(biāo)記 #}
<a class="btn btn-success btn-sm" >江蘇省</a>
{# 地圖代碼開始 #}
<div class="x-body">
<!-- 為ECharts準(zhǔn)備一個(gè)具備大小(寬高)的Dom -->
<div id="main" style="width: 949.75px;height:450px;"></div>
</div>
<script type="text/javascript">
echarts.registerMap('jiangsu', jiangsuJson);
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(document.getElementById('main'));
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
myChart.setOption({
series: [{
type: 'map',
map: 'jiangsu'
}]
});
</script>
</div>
其實(shí)只要按照本人上面的做法,就可以制作出來,本人繪不是很復(fù)雜,如果各位對(duì)省圖還需要其他顯示功能,大家不妨訪問 Echarts 的官網(wǎng)。
開源精選》是我們分享Github、Gitee等開源社區(qū)中優(yōu)質(zhì)項(xiàng)目的欄目,包括技術(shù)、學(xué)習(xí)、實(shí)用與各種有趣的內(nèi)容。本期推薦的是一個(gè)基于 JavaScript 的開源可視化圖表庫——Apache ECharts。
ECharts是一個(gè)使用 JavaScript 實(shí)現(xiàn)的開源可視化庫,可以流暢地運(yùn)行在 PC 和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器(IE9/10/11,Chrome,F(xiàn)irefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。
豐富的圖表類型:提供開箱即用的 20 多種圖表和十幾種組件,并且支持各種圖表以及組件的任意組合。
強(qiáng)勁的渲染引擎:Canvas、SVG 雙引擎一鍵切換,增量渲染、流加載等技術(shù)實(shí)現(xiàn)千萬級(jí)數(shù)據(jù)的流暢交互。
專業(yè)的數(shù)據(jù)分析:通過數(shù)據(jù)集管理數(shù)據(jù),支持?jǐn)?shù)據(jù)過濾、聚類、回歸,幫助實(shí)現(xiàn)同一份數(shù)據(jù)的多維度分析。
優(yōu)雅的可視化設(shè)計(jì):默認(rèn)設(shè)計(jì)遵從可視化原則,支持響應(yīng)式設(shè)計(jì),并且提供了靈活的配置項(xiàng)方便開發(fā)者定制。
健康的開源社區(qū):活躍的社區(qū)用戶保證了項(xiàng)目的健康發(fā)展,也貢獻(xiàn)了豐富的第三方插件滿足不同場(chǎng)景的需求。
友好的無障礙訪問:智能生成的圖表描述和貼花圖案,幫助視力障礙人士了解圖表內(nèi)容,讀懂圖表背后的故事。
移動(dòng)端優(yōu)化:ECharts 針對(duì)移動(dòng)端交互做了細(xì)致的優(yōu)化,例如移動(dòng)端小屏上適于用手指在坐標(biāo)系中進(jìn)行縮放、平移。
1 獲取 Apache ECharts
Apache ECharts 支持多種下載方式,你可以根據(jù)項(xiàng)目的實(shí)際情況選擇以下任意一種方式安裝。
apache/echarts 項(xiàng)目的 release 頁面可以找到各個(gè)版本的鏈接。點(diǎn)擊下載頁面下方 Assets 中的 Source code,解壓后 dist 目錄下的 echarts.js 即為包含完整 ECharts 功能的文件。
https://github.com/apache/echarts/releases
npm install echarts --save
在 https://www.jsdelivr.com/package/npm/echarts 選擇 dist/echarts.js,點(diǎn)擊并保存為 echarts.js 文件。
2 引入 Apache ECharts
在剛才保存 echarts.js 的目錄新建一個(gè) index.html 文件,內(nèi)容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- 引入剛剛下載的 ECharts 文件 -->
<script src="echarts.js"></script>
</head>
</html>
打開這個(gè) index.html,你會(huì)看到一片空白。但是不要擔(dān)心,打開控制臺(tái)確認(rèn)沒有報(bào)錯(cuò)信息,就可以進(jìn)行下一步。
3 繪制一個(gè)簡單的圖表
在繪圖前我們需要為 ECharts 準(zhǔn)備一個(gè)定義了高寬的 DOM 容器。在剛才的例子 </head> 之后,添加:
<body>
<!-- 為 ECharts 準(zhǔn)備一個(gè)定義了寬高的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
</body>
然后就可以通過 echarts.init 方法初始化一個(gè) echarts 實(shí)例并通過 setOption 方法生成一個(gè)簡單的柱狀圖,下面是完整代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ECharts</title>
<!-- 引入剛剛下載的 ECharts 文件 -->
<script src="echarts.js"></script>
</head>
<body>
<!-- 為 ECharts 準(zhǔn)備一個(gè)定義了寬高的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(document.getElementById('main'));
// 指定圖表的配置項(xiàng)和數(shù)據(jù)
var option = {
title: {
text: 'ECharts 入門示例'
},
tooltip: {},
legend: {
data: ['銷量']
},
xAxis: {
data: ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']
},
yAxis: {},
series: [
{
name: '銷量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}
]
};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
myChart.setOption(option);
</script>
</body>
</html>
這樣你的第一個(gè)圖表就誕生了!
折線圖
折線圖堆疊
堆疊面積圖
漸變堆疊面積圖
北京 AQI 可視化
柱狀圖
堆疊柱狀圖
多 Y 軸
堆疊條形圖
餅圖
南丁格爾玫瑰圖
嵌套環(huán)形圖
地理坐標(biāo)/地圖
地圖柱狀圖變形動(dòng)畫
關(guān)系圖
人物關(guān)系圖(環(huán)形布局)
NPM 依賴關(guān)系圖
矩形樹圖
磁盤占用
旭日?qǐng)D
Drink Flavors
平行坐標(biāo)系
AQI 分布(平行坐標(biāo))
營養(yǎng)結(jié)構(gòu)(平行坐標(biāo))
散點(diǎn)矩陣和平行坐標(biāo)
—END—
組件預(yù)覽地址:https://echarts.apache.org/examples/zh/index.html
開源協(xié)議:Apache2.0
開源地址:https://github.com/apache/echarts
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。