Chart.js是一個流行的JavaScript圖表庫,ng2圖表是Angular 2+的包裝器,可以輕松地將Chart.js集成到Angular中。 我們來看看基本用法。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,祿勸企業(yè)網(wǎng)站建設,祿勸品牌網(wǎng)站建設,網(wǎng)站定制,祿勸網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,祿勸網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
安裝
首先,在項目中安裝 Chart.js 和 ng2-charts:
# Yarn: $ yarn add ng2-charts chart.js # or npm $ npm install ng2-charts charts.js --save
當然 ,如果你是使用Angular CLI構建的項目,你也可以很容易的添加Chart.js 添加.angular-cli.json配置文件中,以便將它與應用綁定在一直:
//: .angular-cli.json (partial) "script": [ "../node_modules/chart.js/dist/Chart.min.js" ]
現(xiàn)在,你需要在你的 app 模塊或功能模塊導入 ng2-charts 的ChartsModule:
//: app.module.ts import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { ChartsModule } from '@angular/charts'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, ChartsModule ], providers: [], bootstrap: [ AppComponent ] }) export class AppModule {}
使用
ng2-charts 給我們提供了一個可以應用于HTML canvas元素的baseChart指令。 以下是一個示例,其中顯示了一些用于輸入的選項以及該指令輸出的chartClick事件:
//: app.component.html
這就是組件類現(xiàn)在的樣子:
//: app.component.ts import { Component } from '@angular/core'; @Component({ ... }) export class AppComponent { chartOptions = { responsive: true }; chartData = [ { data: [330, 600, 260, 700], label: 'Account A' }, { data: [120, 455, 100, 340], label: 'Account B' }, { data: [45, 67, 800, 500], label: 'Account C' } ]; chartLabels = ['January', 'February', 'Mars', 'April']; onChartClick(event) { console.log(event); } }
選項
以下就是不同的可選輸入項:
chartType
設置圖表的基本類型, 值可以是pipe,doughnut,bar,line,polarArea,radar或horizontalBar。
legend
一個布爾值,用于是否在圖表上方顯示圖例。
datasets
包含數(shù)據(jù)數(shù)組和每個數(shù)據(jù)集標簽的對象數(shù)組。
data
如果你的圖表很簡單,只有一個數(shù)據(jù)集,你可以使用data而不是datasets。
labels
x軸的標簽集合
options
包含圖表選項的對象。 有關可用選項的詳細信息,請參閱官方Chart.js文檔。
在上面的例子中,我們將圖表設置為自適應模式,根據(jù)視口大小進行自動調整。
colors
在上面的例子中未顯示,但你可以定義自己的顏色, 傳入包含以下值的對象文字數(shù)組:
myColors = [ { backgroundColor: 'rgba(103, 58, 183, .1)', borderColor: 'rgb(103, 58, 183)', pointBackgroundColor: 'rgb(103, 58, 183)', pointBorderColor: '#fff', pointHoverBackgroundColor: '#fff', pointHoverBorderColor: 'rgba(103, 58, 183, .8)' }, // ...colors for additional data sets ];
使用自定義顏色時,必須為每個數(shù)據(jù)集提供一個顏色對象字面量。
事件
發(fā)出兩個事件,chartClick和chartHover,它們允許對與圖表交互的用戶做出反應。 當前活動點和標簽作為發(fā)射事件數(shù)據(jù)的一部分返回。
動態(tài)更新數(shù)據(jù)集
當然,Chart.js的優(yōu)點在于,您的圖表可以輕松地通過動態(tài)更新/響應從后端或用戶輸入的數(shù)據(jù)。
下面這個示例中,我們?yōu)?月份添加了一個新的數(shù)據(jù)集合:
//: app.component.ts(partial) newDataPoint(dataArr = [100, 100, 100], label) { this.chartData.forEach((dataset, index) => { this.chartData[index] = Object.assign({}, this.chartData[index], { data: [...this.chartData[index].data, dataArr[index]] }); }); this.chartLabels = [...this.chartLabels, label]; }
它可以像這樣使用:
//: app.component.html(partial)
你可能注意到了,我們不會對圖表的數(shù)據(jù)集進行改動,而是使用新數(shù)據(jù)返回包含先前數(shù)據(jù)的新對象。 Object.assign可以很容易地做到這一點。
在這個特定的例子中,如果沒有提供參數(shù)時,我們?yōu)?個數(shù)據(jù)集設定了默認值為100。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。