ECharts 基礎使用

echarts 實例

一個網頁中可以創(chuàng)建多個 echarts 實例。
每個 echarts 實例中可以創(chuàng)建多個圖表和坐標系等等(用 option 來描述)岸售。
準備一個 DOM 節(jié)點(作為 echarts 的渲染容器)吏夯,就可以在上面創(chuàng)建一個 echarts 實例掸刊。每個 echarts 實例獨占一個 DOM 節(jié)點琢蛤。

echarts實例

系列(series)

在 echarts 里害捕,系列(series)是指:一組數值以及他們映射成的圖鹰晨。
一個 系列 包含的要素至少有:一組數值墨叛、圖表類型(series.type)止毕、以及其他的關于這些數據如何映射成圖的參數。

說人話就是漠趁,系列 這個東西就是用來描述圖表的扁凛,包含了圖表的數據、圖表是什么類型:line(折線圖)闯传、bar(柱狀圖)谨朝、pie(餅圖)... 、以及其它的構成參數甥绿。

系列

也可以有另一種配置方式字币,系列的數據從 dataset 中取:

系列

組件(component)

在系列之上共缕,echarts 中各種內容洗出,被抽象為“組件”。

例如图谷,echarts 中至少有這些組件:xAxis(直角坐標系 X 軸)翩活、yAxis(直角坐標系 Y 軸)、grid(直角坐標系底板)便贵、angleAxis(極坐標系角度軸)菠镇、radiusAxis(極坐標系半徑軸)、polar(極坐標系底板)嫉沽、geo(地理坐標系)辟犀、dataZoom(數據區(qū)縮放組件)、visualMap(視覺映射組件)绸硕、tooltip(提示框組件)堂竟、toolbox(工具欄組件)、series(系列)玻佩、...

我們注意到出嘹,其實 系列(series)也是一種組件,可以理解為:系列是專門繪制“圖”的組件咬崔。

如下圖税稼,右側的 option 中聲明了各個組件(包括系列),各個組件就出現在圖中垮斯。

組件

option 配置對象

echarts 的使用者郎仆,使用 option 來描述其對圖表的各種需求,包括:有什么數據兜蠕、要畫什么圖表扰肌、圖表長什么樣子、含有什么組件熊杨、組件能操作什么事情等等曙旭。簡而言之盗舰,option 描述了:數據數據如何映射成圖形桂躏、交互行為钻趋。

// 創(chuàng)建 echarts 實例。
var dom = document.getElementById('dom-id');
var chart = echarts.init(dom);

// 用 option 描述 `數據`剂习、`數據如何映射成圖形`蛮位、`交互行為` 等。
// option 是個大的 JavaScript 對象鳞绕。
var option = {
    // option 每個屬性是一類組件土至。
    legend: {...},
    grid: {...},
    tooltip: {...},
    toolbox: {...},
    dataZoom: {...},
    visualMap: {...},
    // 如果有多個同類組件,那么就是個數組猾昆。例如這里有三個 X 軸。
    xAxis: [
        // 數組每項表示一個組件實例骡苞,用 type 描述“子類型”垂蜗。
        {type: 'category', ...},
        {type: 'category', ...},
        {type: 'value', ...}
    ],
    yAxis: [{...}, {...}],
    // 這里有多個系列,也是構成一個數組解幽。
    series: [
        // 每個系列贴见,也有 type 描述“子類型”,即“圖表類型”躲株。
        {type: 'line', data: [['AA', 332], ['CC', 124], ['FF', 412], ... ]},
        {type: 'line', data: [2231, 1234, 552, ... ]},
        {type: 'line', data: [[4, 51], [8, 12], ... ]}
    }]
};

// 調用 setOption 將 option 輸入 echarts片部,然后 echarts 渲染圖表。
chart.setOption(option);

系列里的 series.data 是本系列的數據霜定。也可以使用另一種方式档悠,系列數據從 dataset 中取:

var option = {
    dataset: {
        source: [
            [121, 'XX', 442, 43.11],
            [663, 'ZZ', 311, 91.14],
            [913, 'ZZ', 312, 92.12],
            ...
        ]
    },
    xAxis: {},
    yAxis: {},
    series: [
        // 數據從 dataset 中取望浩,encode 中的數值是 dataset.source 的維度 index (即第幾列)
        {type: 'bar', encode: {x: 1, y: 0}},
        {type: 'bar', encode: {x: 1, y: 2}},
        {type: 'scatter', encode: {x: 1, y: 3}},
        ...
    ]
};

組件的定位

多數組件和系列辖所,都能夠基于 top / right / down / left / width / height 絕對定位。
這種絕對定位的方式磨德,類似于 CSS 的絕對定位(position: absolute)缘回。絕對定位基于的是 echarts 容器 DOM 節(jié)點。

它們的值可以是

  • 絕對數值(例如 bottom: 54 表示:距離 echarts 容器底邊界 54 像素)典挑。
  • 或基于 echarts 容器高寬的百分比(例如 right: '20%' 表示:距離 echarts 容器右邊界的距離是 echarts 容器寬度的 20%)酥宴。

如下圖的例子,對 grid 組件(也就是直角坐標系的底板)設置 left您觉、right拙寡、height、bottom 達到的效果顾犹。

定位

我們可以注意到倒庵,left right width 是一組(橫向)褒墨、top bottom height 是另一組(縱向)。這兩組沒有什么關聯(lián)擎宝。每組中郁妈,至多設置兩項就可以了,第三項會被自動算出绍申。例如噩咪,設置了 leftright 就可以了,width 會被自動算出极阅。

坐標系

坐標系用于布局胃碾,以及顯示數據的刻度等等。一個坐標系筋搏,可能由多個組件協(xié)作而成仆百。我們以最常見的直角坐標系來舉例。直角坐標系中奔脐,包括有 xAxis(直角坐標系 X 軸)俄周、yAxis(直角坐標系 Y 軸)、grid(直角坐標系底板)三種組件髓迎。xAxis峦朗、yAxisgrid 自動引用并組織起來,共同工作排龄。

下圖波势,只聲明了 xAxisyAxis 和一個 scatter(散點圖系列)橄维,echarts 暗自為他們創(chuàng)建了 grid 并關聯(lián)起他們:

image

再來看兩個 yAxis尺铣,共享了一個 xAxis 的例子。兩個 series挣郭,也共享了這個 xAxis迄埃,但是分別使用不同的 yAxis,使用 yAxisIndex 來指定它自己使用的是哪個 yAxis

image

還存在一個 echarts 實例中兑障,有多個 grid 的情況侄非,每個 grid 分別有 xAxisyAxis流译,他們使用 xAxisIndex逞怨、yAxisIndexgridIndex 來指定引用關系:

image

另外福澡,一個系列叠赦,往往能運行在不同的坐標系中。例如,一個 scatter(散點圖)能運行在 直角坐標系除秀、極坐標系 糯累、地理坐標系(GEO) 等各種坐標系中。同樣册踩,一個坐標系泳姐,也能承載不同的系列,如上面出現的各種例子暂吉,直角坐標系里承載了 line(折線圖)胖秒、bar(柱狀圖)等等。

更多

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末慕的,一起剝皮案震驚了整個濱河市阎肝,隨后出現的幾起案子,更是在濱河造成了極大的恐慌肮街,老刑警劉巖风题,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異嫉父,居然都是意外死亡俯邓,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門熔号,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸟整,你說我怎么就攤上這事引镊。” “怎么了篮条?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵弟头,是天一觀的道長。 經常有香客問我涉茧,道長赴恨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任诉位,我火速辦了婚禮浆兰,結果婚禮上趴乡,老公的妹妹穿的比我還像新娘。我一直安慰自己惑淳,他們只是感情好,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布饺窿。 她就那樣靜靜地躺著歧焦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肚医。 梳的紋絲不亂的頭發(fā)上绢馍,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天向瓷,我揣著相機與錄音,去河邊找鬼舰涌。 笑死猖任,一個胖子當著我的面吹牛,可吹牛的內容都是我干的舵稠。 我是一名探鬼主播超升,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哺徊!你這毒婦竟也來了室琢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤落追,失蹤者是張志新(化名)和其女友劉穎盈滴,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體轿钠,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡巢钓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了疗垛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症汹。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贷腕,靈堂內的尸體忽然破棺而出背镇,到底是詐尸還是另有隱情,我是刑警寧澤泽裳,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布瞒斩,位于F島的核電站,受9級特大地震影響涮总,放射性物質發(fā)生泄漏胸囱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一瀑梗、第九天 我趴在偏房一處隱蔽的房頂上張望烹笔。 院中可真熱鬧,春花似錦抛丽、人聲如沸箕宙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柬帕。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陷寝,已是汗流浹背锅很。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凤跑,地道東北人爆安。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像仔引,于是被迫代替她去往敵國和親扔仓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容