天天看點

前端資料可視化之Echarts初體驗

今天在面試的時候面試官問到了有沒有Echarts的開發經驗,後來了解到面試官所在的部門主要就是負責資料可視化平台的搭建,以Echart和HighCharts為基礎。

雖然Echarts誕生的時間已經挺久了,但是随着最近資料分析等崗位越來越熱門,很多公司将資料可視化平台的搭建提上日程。

今天我們就随着Echart的文檔先跑個Demo,順便避一下坑。

引入Echarts

首先Echarts的官方文檔是https://echarts.apache.org/zh/index.html。

Echarts作為第三方庫,我們首先要先擷取這個庫的資源檔案,官方提供了很多的辦法。

  • 從 Apache ECharts 官網下載下傳界面 擷取官方源碼包後建構。
  • 在Echarts的 GitHub 擷取。
  • 通過 npm 擷取 echarts,

    npm install echarts --save

  • 通過 jsDelivr 等CDN引入

建構項目

這裡我使用的是第三種,通過npm擷取。

在終端輸入指令:

npm init -y

npm install echarts --save

然後建立一個

index.html

,一個

index.js

做好準備工作後,我們就着手寫一個最簡單的折線圖的Demo。

進行編碼

index.html

内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="main" style="width: 600px; height: 400px"></div>
    <script type="module" src="./index.js"></script>
</body>
</html>
           

index.js

代碼如下:

import * as echarts from 'echarts';

var charDom = document.getElementById('main');
var myChart = echarts.init(charDom);

var option;

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [150,230,224,218,135,147,260],
        type: 'line'
    }]
}

option && myChart.setOption(option);
           

代碼解析

稍微解析一下代碼。

html

部分,我們就單純的聲明了一個

div

在承載一會兒生成的

Echarts

圖表。

因為引入的

script

檔案中有使用

ESModule

的文法,是以

script

type

屬性一定要設定成

module

js

部分的話,官方的文檔都有給示例,簡單解析一下就是,先通過

import

引入

echarts

的子產品,然後拿到我們要搭載

Echarts

圖檔的那個

DOM

節點,通過提供的

init

方法進行初始化,然後就是對資料的聲明,

option

是一個包含要渲染圖表中資料的對象,目前是跑

Demo

,是以暫時寫成為靜态的資料即可。然後根據提供的

setOption

方法對其進行挂載。

我們似乎也沒有做太多的工作,隻是基于

Echarts

提供的輪子并按照其規則來進行編碼即可。

Echarts

為我們提供了大量的

Demo

,使用的方法都大同小異,基于官方給的示例代碼進行修改即可,這幾乎就可以滿足我們日常開發中的所有工作了。

運作程式 + 踩坑提示

說了這麼多,我們先跑一下頁面吧,看看會不會有意想不到的坑存在。

果然

前端資料可視化之Echarts初體驗

頁面上沒有任何顯示,而且通過控制台可以發現報錯了。通過報錯資訊的提示和百度查詢可知,它跨域了!因為我隻是在本地跑的一個Demo,沒有搭載任何服務支援。

解決問題 + 運作程式

那我們就建立一個服務,應用一下現在最流行的

vite

來建構,因為我們之前已經通過

npm init -y

進行過初始化,是以我們現在隻需要

yarn add vite -d

即可。

然後我們需要改一下

package.json

中的

scripts

屬性

前端資料可視化之Echarts初體驗

這樣我們就可以通過

npm run dev

來運作我們的服務了。

繼續閱讀