W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
在 ECharts 系列中通過使用 series[i]-scatter 來實現散點(氣泡)圖。直角坐標系上的散點圖可以用來展現數據的 x,y 之間的關系,如果數據項有多個維度,其它維度的值可以通過不同大小的 symbol 展現成氣泡圖,也可以用顏色來表現。這些可以配合 visualMap 組件完成。
ECharts 散點圖可以應用在直角坐標系,極坐標系,地理坐標系上。
Tip: ECharts 2.x 中在地圖上通過 markPoint 標記大量數據點方式在 ECharts 3 中建議通過地理坐標系上的 scatter 實現。下面示例就是在中國地圖上用散點圖展現了空氣質量的分布。并且用 visualMap 組件將 PM2.5 映射到了顏色。
設置 ECharts 散點圖,取值為 string 類型,此處的值為 scatter。
設置散點圖系列的名稱,取值類型為 string用于 tooltip 的顯示,legend 的圖例篩選,在 setOption 更新數據和配置項時用于指定對應的系列。
散點圖系列使用的坐標系,值類型為 string,默認值為 cartesian2d;以下是可選的取值:
散點圖使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。取值類型為 number,默認值為 0。
散點圖使用的 y 軸的 index,在單個圖表實例中存在多個 y 軸的時候有用。取值類型為 number,默認值為 0。
散點圖使用的極坐標系的 index,在單個圖表實例中存在多個極坐標系的時候有用。取值類型為 number,默認值為 0。
散點圖使用的地理坐標系的 index,在單個圖表實例中存在多個地理坐標系的時候有用。取值類型為 number,默認值為 0。
使用的日歷坐標系的 index,在單個圖表實例中存在多個日歷坐標系的時候有用。取值類型為 number,默認值為 0。
是否在散點圖中開啟鼠標 hover 的提示動畫效果。取值類型為 boolean。
是否啟用散點圖圖例 hover 時的聯動高亮。取值類型為 boolean,默認值為 true。
在散點圖中使用的標記的圖形。取值類型為 string,默認值為 circle。
ECharts 提供的標記類型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
也可以通過 'image://url' 設置為圖片,其中 url 為圖片的鏈接,或者 dataURI。
可以通過 'path://' 將圖標設置為任意的矢量路徑。這種方式相比于使用圖片的方式,不用擔心因為縮放而產生鋸齒或模糊,而且可以設置為任意顏色。路徑圖形會自適應調整為合適的大小。路徑的格式參見 SVG PathData。可以從 Adobe Illustrator 等工具編輯導出。
標記的大小,取值類型為 number, Array, Function,默認值為 10。可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
如果需要每個數據的圖形大小不一樣,可以設置為如下格式的回調函數:
(value: Array|number, params: Object) => number|Array
其中第一個參數 value 為 data 中的數據值。第二個參數 params 是其它的數據項參數。
標記的旋轉角度,取值類型為 number。
注意:在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
標記相對于原本位置的偏移,取值類型為 Array,默認值為 [0, 0]。
默認情況下,標記會居中置放在數據對應的位置,但是如果 symbol 是自定義的矢量路徑或者圖片,就有可能不希望 symbol 居中。這時候可以使用該配置項配置 symbol 相對于原本居中的偏移,可以是絕對的像素值,也可以是相對的百分比。
例如 [0, '50%'] 就是把自己向上移動了一半的位置,在 symbol 圖形是氣泡的時候可以讓圖形下端的箭頭對準數據點。
是否開啟大規(guī)模散點圖的優(yōu)化,在數據圖形特別多的時候(>=5k)可以開啟。取值類型為 boolean,默認值為 true。
開啟后配合 largeThreshold 在數據量大于指定閾值的時候對繪制進行優(yōu)化。
缺點:優(yōu)化后不能自定義設置單個數據項的樣式。
散點圖開啟繪制優(yōu)化的閾值。取值類型為 number,默認值為 2000。
鼠標懸浮時在圖形元素上時鼠標的樣式是什么。取值類型為 string,默認值為 pointer。同 CSS 的 cursor。
圖形上的文本標簽,可用于說明圖形的一些數據信息,比如值,名稱等,label選項在 ECharts 2.x 中放置于itemStyle.normal下,在 ECharts 3 中為了讓整個配置項結構更扁平合理,label 被拿出來跟 itemStyle 平級,并且跟 itemStyle 一樣擁有 normal, emphasis 兩個狀態(tài)。
圖形樣式,有 normal 和 emphasis 兩個狀態(tài)。normal 是圖形在默認狀態(tài)下的樣式;emphasis 是圖形在高亮狀態(tài)下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
使用 dimensions 定義 data 每個維度的信息,取值類型為 Array。例如:
series: {
type: 'xxx',
// 定義了每個維度的名稱。這個名稱會被顯示到默認的 tooltip 中。
dimensions: ['date', 'open', 'close', 'highest', 'lowest']
data: [
// 有了上面 dimensions 定義后,下面這五個維度的名稱分別為:
// 'date', 'open', 'close', 'highest', 'lowest'
[12, 44, 55, 66, 2],
[23, 6, 16, 23, 1],
...
]
}
series: {
type: 'xxx',
dimensions: [
null, // 如果此維度不想給出定義,則使用 null 即可
{type: 'ordinal'}, // 只定義此維度的類型。
// 'ordinal' 表示離散型,一般文本使用這種類型。
// 如果類型沒有被定義,會自動猜測類型。
{name: 'good', type: 'number'},
'bad' // 等同于 {name: 'bad'}
]
}
dimensions 數組中的每一項可以是:
值得一提的是,當定義了 dimensions 后,默認 tooltip 中對個維度的顯示,會變?yōu)椤贺Q排』,從而方便顯示每個維度的名稱。如果沒有定義 dimensions,則默認 tooltip 會橫排顯示,且只顯示數值沒有維度名稱可顯示。
可以定義 data 的哪個維度被編碼成什么。比如:
series: {
type: 'xxx',
encode: {
x: [3, 1, 5], // 表示維度 3、1、5 映射到 x 軸。
y: 2, // 表示維度 2 映射到 y 軸。
tooltip: [3, 2, 4] // 表示維度 3、2、4 會在 tooltip 中顯示。
label: 3 // 表示 label 使用維度 3。
},
data: [
// 每一列稱為一個『維度』。
// 這里分別是維度 0、1、2、3、4。
[12, 44, 55, 66, 2],
[23, 6, 16, 23, 1],
...
]
}
encode 支持的屬性,根據坐標系不同而不同。 對于 直角坐標系(cartesian2d),支持 x、y。 對于 極坐標系(polar),支持 radius、angle。 對于 地理坐標系(geo),支持 lng,lat。 此外,均支持 tooltip 和 label 和 itemName(用于指定 tooltip 中數據項名稱)。
當使用 dimensions 給維度定義名稱后,encode 中可直接引用名稱,例如:
series: {
type: 'xxx',
dimensions: ['date', 'open', 'close', 'highest', 'lowest'],
encode: {
x: 'date',
y: ['open', 'close', 'highest', 'lowest']
},
data: [ ... ]
}
系列中的數據內容數組。數組項通常為具體的數據項。
通常來說,數據用一個二維數組表示。如下,每一列被稱為一個『維度』。
series: [{
data: [
// 維度X 維度Y 其他維度 ...
[ 3.4, 4.5, 15, 43],
[ 4.2, 2.3, 20, 91],
[ 10.8, 9.5, 30, 18],
[ 7.2, 8.8, 18, 57]
]
}]
特別地,當只有一個軸為類目軸(axis.type 為 'category')的時候,數據可以簡化用一個一維數組表示。例如:
xAxis: {
data: ['a', 'b', 'm', 'n']
},
series: [{
// 與 xAxis.data 一一對應。
data: [23, 44, 55, 19]
// 它其實是下面這種形式的簡化:
// data: [[0, 23], [1, 44], [2, 55], [3, 19]]
}]
『值』與 軸類型 的關系:
xAxis: {
type: 'category',
data: ['星期一', '星期二', '星期三', '星期四']
},
yAxis: {
type: 'category',
data: ['a', 'b', 'm', 'n', 'p', 'q']
},
series: [{
data: [
// xAxis yAxis
[ 0, 0, 2 ], // 意思是此點位于 xAxis: '星期一', yAxis: 'a'。
[ '星期四', 2, 1 ], // 意思是此點位于 xAxis: '星期四', yAxis: 'm'。
[ 2, 'p', 2 ], // 意思是此點位于 xAxis: '星期三', yAxis: 'p'。
[ 3, 3, 5 ]
]
}]
當需要對個別數據進行個性化定義時:
數組項可用對象,其中的 value 像表示具體的數值,如:
[
12,
34,
{
value : 56,
//自定義標簽樣式,僅對該數據項有效
label: {},
//自定義特殊 itemStyle,僅對該數據項有效
itemStyle:{}
},
10
]
// 或
[
[12, 33],
[34, 313],
{
value: [56, 44],
label: {},
itemStyle:{}
},
[10, 33]
]
空值:
當某數據不存在時(ps:不存在不代表值為 0),可以用 '-' 或者 null 或者 undefined 或者 NaN 表示。
例如,無數據在折線圖中可表現為該點是斷開的,在其它圖中可表示為圖形不存在。
設置散點圖圖表的標注。
設置散點圖圖表的標線。
散點圖圖表的標域,常用于標記圖表中某個范圍的數據,例如標出某段時間投放了廣告。
散點圖所有圖形的 zlevel 值。取值類型為 number,默認值為0。
zlevel用于 Canvas 分層,不同zlevel值的圖形會放置在不同的 Canvas 中,Canvas 分層是一種常見的優(yōu)化手段。我們可以把一些圖形變化頻繁(例如有動畫)的組件設置成一個單獨的zlevel。需要注意的是過多的 Canvas 會引起內存開銷的增大,在手機端上需要謹慎使用以防崩潰。
zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面。
散點圖組件的所有圖形的z值。取值類型為 number,默認值為2??刂茍D形的前后順序。z值小的圖形會被z值大的圖形覆蓋。
z相比zlevel優(yōu)先級更低,而且不會創(chuàng)建新的 Canvas。
圖形是否不響應和觸發(fā)鼠標事件,取值類型為 boolean,默認為 false,即響應和觸發(fā)鼠標事件。
散點圖是否開啟動畫。取值類型為 boolean,默認值為 true。
是否開啟動畫的閾值,當單個系列顯示的圖形數量大于這個閾值時會關閉動畫。取值類型為 number,默認值為 2000。
初始動畫的時長,取值類型為 number,默認值為 1000。支持回調函數,可以通過每個數據返回不同的 delay 時間實現更戲劇的初始動畫效果:
animationDuration: function (idx) {
// 越往后的數據延遲越大
return idx * 100;
}
初始動畫的緩動效果。取值類型為 string,默認值為 cubicOut。不同的緩動效果可以參考 緩動示例。
初始動畫的延遲,取值類型為 number,默認值為 0。支持回調函數,可以通過每個數據返回不同的 delay 時間實現更戲劇的初始動畫效果。
如下示例:
animationDelay: function (idx) {
// 越往后的數據延遲越大
return idx * 100;
}
也可以看該示例
數據更新動畫的時長。取值類型為 number, Function,默認值為 300。
支持回調函數,可以通過每個數據返回不同的 delay 時間實現更戲劇的更新動畫效果:
animationDurationUpdate: function (idx) {
// 越往后的數據延遲越大
return idx * 100;
}
數據更新動畫的緩動效果。取值類型為 string,默認值為 cubicOut。
數據更新動畫的延遲,取值類型為 number, Function,默認值為 0。
支持回調函數,可以通過每個數據返回不同的 delay 時間實現更戲劇的更新動畫效果。
如下示例:
animationDelayUpdate: function (idx) {
// 越往后的數據延遲越大
return idx * 100;
}
也可以看該示例
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: