Angular圖表庫介紹

1. 前言

如今拐邪,數(shù)據(jù)分析是任何業(yè)務(wù)應(yīng)用程序的重要組成部分扎阶。這有助于企業(yè)做出重要決策技俐。以易于理解和交互的方式表示大量數(shù)據(jù)非常重要。
圖表對(duì)于美觀、易于理解和交互式的數(shù)據(jù)可視化非常有用贱勃。

JavaScript 中有不同的開源和付費(fèi)圖表庫贵扰,可以實(shí)現(xiàn)漂亮的數(shù)據(jù)表示。

在本文中戚绕,我們將研究幾款美觀的, 易于交互的Angular圖表庫舞丛。

首先,我們將看到開源Angular圖表庫谷誓,稍后我們將研究其他付費(fèi)Angular圖表庫.

2. npm趨勢(shì)圖

以下是近五年(as of 2023-09-04)的npm趨勢(shì)圖

Angular chart lib trends

以及狀態(tài)圖

Angular chart lib status

從圖中我們可以看出, ng2-charts是比較老牌的angular圖表庫, 而且一直保持著較好的增長(zhǎng). 后起之秀highcharts-angular發(fā)展也比較迅猛.

ngx-echarts一直保持著穩(wěn)步增長(zhǎng). 從活躍度來看ng2-charts更新一直比較活躍.

注意以上圖中, 沒有將PrimeNG/Charts加入到比較, 因?yàn)镻rimeNG/Charts是PrimeNG這個(gè)大包里面的一個(gè)模塊, npmtrends不支持將模塊添加到比較行列.
而將整個(gè)PrimeNG添加到比較行列對(duì)其它c(diǎn)harts庫又不太公平, 所以請(qǐng)自行判斷PrimeNG/Charts在整個(gè)Angular chart libs中的地位和發(fā)展.

3. 最佳開源Angular圖表庫

以下是使用Angular技術(shù)封裝的最佳開源圖表庫

  • ng2-charts
  • ngx-echarts
  • PrimeNG Charts
  • ngx-charts
  • angular-plotly.js

4. ng2-charts

ng2-charts是經(jīng)過Angular包裝的基于Chart.js的 Angular指令(directive)

Chart.js 是一個(gè)流行的開源JavaScript圖表庫, Chart.js 使用 HTML5 畫布捍歪,可在所有現(xiàn)代瀏覽器(IE11+)上提供出色的渲染性能。

ng2-charts它提供了便于集成到Angular應(yīng)用程序中的原理圖庐镐。

4.1. Ng2-Charts功能

圖表類型:

ng2-charts 支持 8 種圖表類型:

  • 折線圖
  • 條形圖
  • 雷達(dá)圖
  • 餅圖
  • 面積圖
  • 圓環(huán)圖
  • 氣泡圖
  • 散點(diǎn)圖

定制化:

  • 圖例(Legends)
  • 標(biāo)簽
  • 顏色
  • 提示條(Tooltip)
  • 主題(Theming)
  • 組合圖表(Combine Charts)
  • 選項(xiàng)(Options)

在這里查看Angular 13 中帶有 ng2-charts 的很棒的圖表

5. ngx-charts

ngx-charts是 Angular2+ 的聲明式圖表框架变逃。

它使用 Angular 來渲染和動(dòng)畫 SVG 元素韧献,并利用Angular所有的綁定和速度優(yōu)勢(shì),并使用 d3 來實(shí)現(xiàn)出色的數(shù)學(xué)函數(shù)璧针、比例渊啰、軸和形狀生成器等。

通過讓 Angular 完成所有渲染绘证,它為我們帶來了 Angular 平臺(tái)提供的無限可能性嚷那,例如 AoT、Universal 等魏宽。

ngx-charts 允許我們使用 CSS 自定義樣式队询。我們還可以使用 ngx-charts 組件創(chuàng)建自定義圖表。

以下是一篇很好的關(guān)于如何在Angular項(xiàng)目中使用Ngx-Charts的文章How To Use Ngx-Charts In Angular Application ?

5.1. ngx-charts功能

  • 圖表類型

    • 水平和垂直條形圖(bar charts)
    • 線型圖(line)
    • 面積圖(Area)(標(biāo)準(zhǔn)铆惑、堆疊送膳、歸一化)
    • 餅圖(Pie)(可爆炸、網(wǎng)格逆趋、自定義圖例)
    • 氣泡圖(bubble)
    • 油炸圈餅(Doughnut)
    • 儀表盤(Gauge)(線性和徑向)
    • 熱圖(Heatmap)
    • 樹形圖(Treemap)
    • 數(shù)字卡片圖(Number Cards)
  • 定制化

    • 自動(dòng)縮放
    • 時(shí)間線過濾(Timeline Filtering)
    • Line Interpolation
    • 可配置的軸標(biāo)簽
    • 圖例(Legends)(標(biāo)簽和漸變)
    • 可定制的標(biāo)簽位置
    • 實(shí)時(shí)數(shù)據(jù)支持
    • 可定制的工具提示
    • 數(shù)據(jù)點(diǎn)事件處理程序(Data point Event Handlers)
    • 應(yīng)用主題(Theming)
    • 可以配合ngUpgrade一起升級(jí)

6. Ngx-Echarts

ngx-echarts是經(jīng)過Angular包裝的基于ECharts (3.x+) 的 Angular指令(directive)

ECharts是一個(gè)開源的晒奕、基于Web的、跨平臺(tái)的框架魄眉,支持交互式可視化的快速構(gòu)建。

ECharts在 github 上擁有 39.6k star 和 13.2k fork岩梳,被視為全球領(lǐng)先的可視化開發(fā)工具晃择,在 GitHub 可視化類別中排名第三。

它可以在PC和移動(dòng)設(shè)備上流暢運(yùn)行列疗。它與大多數(shù)現(xiàn)代網(wǎng)絡(luò)瀏覽器兼容浪蹂,例如IE8/9/10/11、Chrome古劲、Firefox缰猴、Safari等。ECharts 依賴圖形渲染引擎 ZRender來創(chuàng)建直觀胰舆、交互式和高度可定制的圖表蹬挤。

6.1. Ngx-Echarts功能

  • 圖表類型

    • 線型圖系列
    • 條形圖系列
    • 散點(diǎn)圖系列
    • 餅圖
    • 燭臺(tái)圖系列
    • 統(tǒng)計(jì)箱線圖系列
    • Map系列
    • 熱圖系列
    • 方向信息線系列
    • 關(guān)系圖系列
    • 樹狀圖系列
    • 旭日?qǐng)D系列
    • 多平行系列尺寸數(shù)據(jù)
    • 漏斗系列
    • 量具系列
  • 定制化

    • 加載處理(Loading Handling)
    • 事件處理(Event Handling)
    • 數(shù)據(jù)實(shí)時(shí)更新
    • 初始選項(xiàng)(Initial Options)
    • 自動(dòng)調(diào)整大小(Auto Resize)
    • 應(yīng)用主題
    • 圖表連接(Connect Charts)
    • 可拖拽圖表
    • 3D圖表

請(qǐng)參閱ECharts 文檔以獲取更多自定義信息焰扳。

在此處查看使用 NGX-ECHARTS 在 Angular 中使用 ECharts 進(jìn)行數(shù)據(jù)可視化 (帶有 COVID Tracker 示例應(yīng)用程序)误续。

7. Angular-Plotly

Angular-plotly是來自plotly 的plotly.js Angular組件。

它支持 Angular 9.x育瓜,如果您想與 Angular 8.x 一起使用栽烂,請(qǐng)使用版本angular-plotly.js@1.x

plotly.js構(gòu)建于d3.js和stack.gl之上恋脚,是一個(gè)高級(jí)聲明性圖表庫糟描。plotly.js 附帶 40 多種圖表類型书妻,包括科學(xué)圖表、3D 圖表见间、統(tǒng)計(jì)圖表工猜、SVG 地圖、金融圖表等荒辕。Plotly.js 在 github 上有 1.12 萬顆星和 1.3 萬個(gè)分支犹褒。

7.1. Angular-Plotly.Js的功能

  • 基本圖表:
    散點(diǎn)圖、條形圖李皇、折線圖宙枷、餅圖、氣泡圖卓囚、點(diǎn)圖诅病、填充面積圖、水平條形圖蝇棉、旭日?qǐng)D芥永、桑基圖板辽、點(diǎn)云、多圖表類型

  • 統(tǒng)計(jì)圖表:
    誤差線链患、箱線圖瓶您、直方圖、二維密度圖贸毕、平行類別圖夜赵。

  • 金融圖表:
    瀑布圖、指標(biāo)摊腋、燭臺(tái)圖嘁傀、漏斗圖和漏斗面積圖。

  • 地圖:
    Mapbox 地圖圖層橙凳、Mapbox 密度熱圖笑撞、Choropleth Mapbox、地圖上的線條等坚踩。

  • 3D 圖表:
    3D 散點(diǎn)圖瓤狐、帶狀圖、3D 曲面圖、3D 網(wǎng)格圖等

定制化:

  • 下載為 SVG / PNG
  • 數(shù)據(jù)導(dǎo)出
  • 事件處理
  • 自動(dòng)調(diào)整大小(Auto Resize)
  • 滾動(dòng)(Scroll)
  • 縮放(Zoom)
  • 篩選(Filter)
  • 動(dòng)效(Animation)
  • 分組(Group by)

8. primeng/chart

PrimeNg/Charts組件基于Charts.js 2.7.x郁稍,這是一個(gè)基于開源 HTML5 的圖表庫胜宇。

PrimeNG是 Angular 的豐富 UI 組件的集合恢着。所有小部件都是開源的掰派,可以在 MIT 許可下免費(fèi)使用左痢。

8.1. PrimeNG/Charts功能

圖表類型:

目前有 6 個(gè)選項(xiàng)可供選擇;餅圖略步、圓環(huán)圖定页、折線圖(折線圖或水平條形圖)、條形圖杭煎、雷達(dá)圖和極面積圖卒落。

定制化:

  • 響應(yīng)式(Responsive)
  • 事件處理
  • 標(biāo)簽
  • 圖例(Legends)
  • 提示條(Tooltip)
  • 寬度和高度
  • 選項(xiàng)(參考 Chart.js 文檔

9. Angular Google Charts

angular-google-charts是為 Angular 6 和 7 編寫的Google Charts庫的包裝器(wrapper)导绷。

Google 圖表工具功能強(qiáng)大、易于使用且免費(fèi)妥曲。

注意:Google Charts 是免費(fèi)的檐盟,但不是開源的。Google 的許可不允許您在您的服務(wù)器上托管他們的 JS 文件导犹。因此羡忘,如果您是企業(yè)并擁有一些敏感數(shù)據(jù),Google Charts可能不是最佳選擇节猿。

10. Highcharts Angular

Highcharts Angular是 Angular 的官方Highcharts包裝器(wrapper)。

Highcharts 是一個(gè)基于 SVG 的現(xiàn)代多平臺(tái)圖表庫。它擁有豐富的圖表集合叮叹。

Highcharts 對(duì)于非商業(yè)用途是免費(fèi)的,對(duì)于商業(yè)用途是付費(fèi)的。

11. Angular Fusion Charts

angular-fusioncharts是 FusionCharts JavaScript 圖表庫的簡(jiǎn)單且輕量級(jí)的官方 Angular 組件。angular-fusioncharts 使您能夠輕松地在 Angular 應(yīng)用程序中添加 JavaScript 圖表宪拥。

FusionCharts是一個(gè) JavaScript 圖表庫她君,擁有餅圖、柱形圖缔刹、面積圖校镐、折線圖、雷達(dá)圖等圖表以及 150 多種其他用于 Web 應(yīng)用程序的圖表从祝。

Fusion Charts 提供商業(yè)用途的付費(fèi)許可引谜。

12. 相關(guān)文章

最新更新以及更多Angular相關(guān)文章請(qǐng)?jiān)L問 鵬叔的技術(shù)博客空間 - Angular

13. 總結(jié)

在本文中,我們看到了五個(gè)最好的開源Angular圖表庫和其他付費(fèi)Angular圖表庫毒涧。本文原文位于鵬叔的技術(shù)博客空間 - Angular圖表庫介紹, 若要獲取最近更新請(qǐng)?jiān)L問原文.

14. 參考文檔

Best Angular Chart Libraries

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末契讲,一起剝皮案震驚了整個(gè)濱河市滑频,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霹琼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忠藤,居然都是意外死亡楼雹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谴供,“玉大人,你說我怎么就攤上這事数焊∑槌。” “怎么了谭跨?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蛮瞄。 經(jīng)常有香客問我污呼,道長(zhǎng),這世上最難降的妖魔是什么籍凝? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任饵蒂,我火速辦了婚禮酱讶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渊迁。我一直安慰自己,他們只是感情好毒租,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布箱叁。 她就那樣靜靜地躺著耕漱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪螟够。 梳的紋絲不亂的頭發(fā)上齐鲤,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音牡肉,去河邊找鬼淆九。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饲窿,可吹牛的內(nèi)容都是我干的焕蹄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼永品!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钾麸,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤饭尝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后乎芳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帖池,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睡汹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年寂殉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤叉。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秽浇,死狀恐怖甚负,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斑举,我是刑警寧澤病涨,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站赎懦,受9級(jí)特大地震影響循衰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伐蒋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一先鱼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焙畔,春花似錦、人聲如沸儿惫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽更胖。三九已至铛铁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間却妨,已是汗流浹背饵逐。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彪标,地道東北人倍权。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像捐下,于是被迫代替她去往敵國和親账锹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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