Echarts使用 Canvas 或者 SVG 渲染

瀏覽器端圖表庫(kù)大多會(huì)選擇 SVG 或者 Canvas 進(jìn)行渲染议忽。對(duì)于繪制圖表來(lái)說(shuō)溉跃,這兩種技術(shù)往往是可替換的村刨,效果相近。但是在一些場(chǎng)景中撰茎,他們的表現(xiàn)和能力又有一定差異嵌牺。于是,對(duì)它們的選擇取舍,就成為了一個(gè)一直存在的不易有標(biāo)準(zhǔn)答案的話題逆粹。

ECharts 從初始一直使用 Canvas 繪制圖表募疮。而ECharts v4.0發(fā)布了 SVG 渲染器,從而提供了一種新的選擇僻弹。只須在初始化一個(gè)圖表實(shí)例時(shí)阿浓,設(shè)置renderer 參數(shù)為'canvas'或'svg'即可指定渲染器,比較方便蹋绽。

SVG 和 Canvas 這兩種使用方式差異很大的技術(shù)芭毙,能夠做到同時(shí)被透明支持,主要?dú)w功于 ECharts 底層庫(kù)ZRender的抽象和實(shí)現(xiàn)卸耘,形成可互換的 SVG 渲染器和 Canvas 渲染器退敦。

選擇哪種渲染器

一般來(lái)說(shuō),Canvas 更適合繪制圖形元素?cái)?shù)量較多(這一般是由數(shù)據(jù)量大導(dǎo)致)的圖表(如熱力圖蚣抗、地理坐標(biāo)系或平行坐標(biāo)系上的大規(guī)模線圖或散點(diǎn)圖等)侈百,也利于實(shí)現(xiàn)某些視覺(jué)特效。但是翰铡,在不少場(chǎng)景中钝域,SVG 具有重要的優(yōu)勢(shì):它的內(nèi)存占用更低(這對(duì)移動(dòng)端尤其重要)、并且用戶使用瀏覽器內(nèi)置的縮放功能時(shí)不會(huì)模糊锭魔。

選擇哪種渲染器网梢,我們可以根據(jù)軟硬件環(huán)境、數(shù)據(jù)量赂毯、功能需求綜合考慮。

在軟硬件環(huán)境較好拣宰,數(shù)據(jù)量不大的場(chǎng)景下党涕,兩種渲染器都可以適用,并不需要太多糾結(jié)巡社。

在環(huán)境較差膛堤,出現(xiàn)性能問(wèn)題需要優(yōu)化的場(chǎng)景下,可以通過(guò)試驗(yàn)來(lái)確定使用哪種渲染器晌该。比如有這些經(jīng)驗(yàn):

在須要?jiǎng)?chuàng)建很多 ECharts 實(shí)例且瀏覽器易崩潰的情況下(可能是因?yàn)?Canvas 數(shù)量多導(dǎo)致內(nèi)存占用超出手機(jī)承受能力)肥荔,可以使用 SVG 渲染器來(lái)進(jìn)行改善。大略的說(shuō)朝群,如果圖表運(yùn)行在低端安卓機(jī)燕耿,或者我們?cè)谑褂靡恍┨囟▓D表如水球圖等,SVG 渲染器可能效果更好姜胖。

數(shù)據(jù)量較大(經(jīng)驗(yàn)判斷 > 1k)誉帅、較多交互時(shí),建議選擇 Canvas 渲染器。

我們強(qiáng)烈歡迎開(kāi)發(fā)者們反饋給我們使用的體驗(yàn)和場(chǎng)景蚜锨,幫助我們更好的做優(yōu)化档插。

注:當(dāng)前某些特殊的渲染依然需要依賴(lài) Canvas:如炫光尾跡特效帶有混合效果的熱力圖等亚再。

如何使用渲染器

如果是用如下的方式完整引入echarts郭膛,代碼中已經(jīng)包含了 SVG 渲染器和 Canvas 渲染器

import?*?as?echarts?from?'echarts';

如果你是按照在項(xiàng)目中引入 Apache ECharts一文中的介紹使用按需引入,則需要手動(dòng)引入需要的渲染器

import?*?as?echarts?from?'echarts/core';//?可以根據(jù)需要選用只用到的渲染器

import?{?SVGRenderer,?CanvasRenderer?}?from?'echarts/renderers';

echarts.use([SVGRenderer,?CanvasRenderer]);

然后氛悬,我們就可以在代碼中则剃,初始化圖表實(shí)例時(shí),傳入?yún)?shù)選擇渲染器類(lèi)型:

//?使用?Canvas?渲染器(默認(rèn))

var?chart?=?echarts.init(containerDom,?null,?{?renderer:?'canvas'?});

//?等價(jià)于:

var?chart?=?echarts.init(containerDom);

//?使用?SVG?渲染器

var?chart?=?echarts.init(containerDom,?null,?{?renderer:?'svg'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末圆雁,一起剝皮案震驚了整個(gè)濱河市忍级,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伪朽,老刑警劉巖轴咱,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異烈涮,居然都是意外死亡朴肺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)坚洽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)戈稿,“玉大人,你說(shuō)我怎么就攤上這事讶舰“暗粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵跳昼,是天一觀的道長(zhǎng)般甲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鹅颊,這世上最難降的妖魔是什么敷存? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮堪伍,結(jié)果婚禮上锚烦,老公的妹妹穿的比我還像新娘。我一直安慰自己帝雇,他們只是感情好涮俄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著摊求,像睡著了一般禽拔。 火紅的嫁衣襯著肌膚如雪刘离。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天睹栖,我揣著相機(jī)與錄音硫惕,去河邊找鬼。 笑死野来,一個(gè)胖子當(dāng)著我的面吹牛恼除,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曼氛,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼豁辉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了舀患?” 一聲冷哼從身側(cè)響起徽级,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎聊浅,沒(méi)想到半個(gè)月后餐抢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡低匙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年旷痕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顽冶。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡欺抗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出强重,到底是詐尸還是另有隱情绞呈,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布间景,位于F島的核電站报强,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拱燃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一力惯、第九天 我趴在偏房一處隱蔽的房頂上張望碗誉。 院中可真熱鬧,春花似錦父晶、人聲如沸哮缺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)尝苇。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糠溜,已是汗流浹背淳玩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留非竿,地道東北人蜕着。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像红柱,于是被迫代替她去往敵國(guó)和親承匣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容