Angualr13 集成Echarts8.0 亲测可用

本文介绍了如何在Angualr13 集成Echarts8.0,真实案例、场景亲测可用。

本地环境:


     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 13.0.3
Node: 16.13.0
Package Manager: npm 8.1.4
OS: win32 x64

Angular: 13.0.2
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1300.3
@angular-devkit/build-angular   13.0.3
@angular-devkit/core            13.0.3
@angular-devkit/schematics      13.0.3
@angular/cli                    13.0.3
@schematics/angular             13.0.3
rxjs                            7.4.0
typescript                      4.4.4


Node: 16.13.0
Package Manager: npm 8.1.4
OS: win32 x64 Win10
Angular: 13.0.2



第1步:创建angular工程:

D:\01-workspace\03-develop\01-angular>ng new echartsdemo
? Would you like to add Angular routing? Yes
? Which stylesheet format would you like to use? CSS
CREATE echartsdemo/angular.json (3069 bytes)
CREATE echartsdemo/package.json (1075 bytes)
CREATE echartsdemo/README.md (1057 bytes)
CREATE echartsdemo/tsconfig.json (863 bytes)
CREATE echartsdemo/.editorconfig (274 bytes)
CREATE echartsdemo/.gitignore (620 bytes)
CREATE echartsdemo/.browserslistrc (600 bytes)
CREATE echartsdemo/karma.conf.js (1428 bytes)
CREATE echartsdemo/tsconfig.app.json (287 bytes)
CREATE echartsdemo/tsconfig.spec.json (333 bytes)
CREATE echartsdemo/src/favicon.ico (948 bytes)
CREATE echartsdemo/src/index.html (297 bytes)
CREATE echartsdemo/src/main.ts (372 bytes)
CREATE echartsdemo/src/polyfills.ts (2338 bytes)
CREATE echartsdemo/src/styles.css (80 bytes)
CREATE echartsdemo/src/test.ts (745 bytes)
CREATE echartsdemo/src/assets/.gitkeep (0 bytes)
CREATE echartsdemo/src/environments/environment.prod.ts (51 bytes)
CREATE echartsdemo/src/environments/environment.ts (658 bytes)
CREATE echartsdemo/src/app/app-routing.module.ts (245 bytes)
CREATE echartsdemo/src/app/app.module.ts (393 bytes)
CREATE echartsdemo/src/app/app.component.html (23364 bytes)
CREATE echartsdemo/src/app/app.component.spec.ts (1088 bytes)
CREATE echartsdemo/src/app/app.component.ts (215 bytes)
CREATE echartsdemo/src/app/app.component.css (0 bytes)

执行完成后会创建一个名为echartsdemo的angular工程


第2步:安装必备的包:

需要进入到echartsdemo目录下:

D:\01-workspace\03-develop\01-angular>cd echartsdemo

D:\01-workspace\03-develop\01-angular\echartsdemo>dir
 驱动器 D 中的卷是 Data
 卷的序列号是 A343-6455

 D:\01-workspace\03-develop\01-angular\echartsdemo 的目录

2021/11/29  17:11    <DIR>          .
2021/11/29  17:11    <DIR>          ..
2021/11/29  17:10               600 .browserslistrc
2021/11/29  17:10               274 .editorconfig
2021/11/29  17:10               620 .gitignore
2021/11/29  17:10             3,069 angular.json
2021/11/29  17:10             1,428 karma.conf.js
2021/11/29  17:11    <DIR>          node_modules
2021/11/29  17:11           849,079 package-lock.json
2021/11/29  17:10             1,075 package.json
2021/11/29  17:10             1,057 README.md
2021/11/29  17:10    <DIR>          src
2021/11/29  17:10               287 tsconfig.app.json
2021/11/29  17:10               863 tsconfig.json
2021/11/29  17:10               333 tsconfig.spec.json
              11 个文件        858,685 字节
               4 个目录 255,937,089,536 可用字节

D:\01-workspace\03-develop\01-angular\echartsdemo>

需要的包:
echarts@8.0.0  see:https://www.npmjs.com/package/ngx-echarts
echarts@5.2.2  see:https://www.npmjs.com/package/echarts

下面是具体的安装过程:
npm install echarts@7.0.7 --save--dev
npm install ngx-echarts@8.0.0 --save--dev

D:\01-workspace\03-develop\01-angular\echartsdemo>npm install echarts@5.2.2 --save--dev

added 4 packages in 4s

22 packages are looking for funding
  run `npm fund` for details

D:\01-workspace\03-develop\01-angular\echartsdemo>npm install ngx-echarts@8.0.0 --save--dev

removed 1 package, and changed 1 package in 3s

22 packages are looking for funding
  run `npm fund` for details

D:\01-workspace\03-develop\01-angular\echartsdemo>

第3步:打开工程做设置:

用VSCode打开工程后找到package.json,可以看到如下的内容:

表示已经安装OK,下面开始做设置:
 

第4步:修改app.modules.ts

加入需要引用的包

import { NgxEchartsModule } from 'ngx-echarts';
import * as echarts from 'echarts';

在imports: [] 加入:
NgxEchartsModule.forRoot({echarts})
至此,完整的app.modules.ts是这样:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { NgxEchartsModule } from 'ngx-echarts';
import * as echarts from 'echarts';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    NgxEchartsModule.forRoot({echarts})
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

第4步,修改模板

找到src\app\app.component.html,里面的东西全部清空,增加模板定义:

<div echarts [options]="barChart" class="chart"></div>

 第5步,定义数据模型

打开src\app\app.component.ts定义绑定变量:lineChart

public lineChart:any;

然后创建一个方法名字随意,这里为了测试我用的方法是:buildLineChartModule(),然后创建ngOnInit,在这个ngOnInit方法里调用buildLineChartModule(),稍后给出完整代码,ngOnInit()用于Angular获取输入属性后初始化组件,此方法是钩子方法,在ngOnChanges()方法被调用之后使用,这样可以在页面初始化完成后就自动在界面上显示出图表。
app.component.ts 完整的代码如下:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'echartsdemo';

  // 定义绑定变量
  public barChart:any;

  ngOnInit():void{
    this.buildBarChartModule();
  }

  buildBarChartModule(){
    this.lineChart = {
      title: {
          text: 'ECharts 入门示例'
      },
      tooltip: {},
      legend: {
          data:['销量']
      },
      xAxis: {
          data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
      },
      yAxis: {},
      series: [{
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
      }]
  };
  }
}

 第6步,测试

在浏览器访问http://localhost:4200/ 可以看到如下界面表示以上处理成功

 OK,到此为止可以在angular中显示2维的图表了,再增加个饼图看看,打开Echarts官网找到环饼图案例:
Examples - Apache EChartsECharts, a powerful, interactive charting and visualization library for browserhttps://echarts.apache.org/examples/zh/editor.html?c=pie-doughnut然后根据上面的步骤,分别定义标签:

<div echarts [options]="doughnutChart" class="chart"></div>

定义绑定变量:

  // 环饼图绑定变量
  public doughnutChart:any;

定义创建数据模型的方法buildLineChartModule()并且加入到ngOnInit().创建数据模型时的代码主要是参考Echarts 官网的帮助里面给出详细的源码,比如上面的链接打开后会显示如下:

左侧红框中的代码就是需要移植的代码,直接复制到buildLineChartModule()里面并且修改一下被复制的变量名即可,完整的代码如下:
1.HTML模板:

<h2>Echarts Demo</h2>
<div echarts [options]="barChart" class="chart"></div>

<p>环饼图</p>
<div echarts [options]="doughnutChart" class="chart"></div>

 2.组件模型定义:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'echartsdemo';

  // 定义绑定变量

  // 柱状图绑定变量
  public barChart:any;

  // 环饼图绑定变量
  public doughnutChart:any;

  ngOnInit():void{
    this.buildBarChartModule();
    this.buildDoughnutChart();
  }

  // 构建柱状图数据模型
  buildBarChartModule(){
    this.barChart = {
      title: {
          text: 'ECharts 入门示例'
      },
      tooltip: {},
      legend: {
          data:['销量']
      },
      xAxis: {
          data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
      },
      yAxis: {},
      series: [{
          name: '销量',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
      }]
  };
  }

  // 构建环饼图数据模型
  buildDoughnutChart(){
    this.doughnutChart = {
      tooltip: {
        trigger: 'item'
      },
      legend: {
        top: '5%',
        left: 'center'
      },
      series: [
        {
          name: 'Access From',
          type: 'pie',
          radius: ['40%', '70%'],
          avoidLabelOverlap: false,
          label: {
            show: false,
            position: 'center'
          },
          emphasis: {
            label: {
              show: true,
              fontSize: '40',
              fontWeight: 'bold'
            }
          },
          labelLine: {
            show: false
          },
          data: [
            { value: 1048, name: 'Search Engine' },
            { value: 735, name: 'Direct' },
            { value: 580, name: 'Email' },
            { value: 484, name: 'Union Ads' },
            { value: 300, name: 'Video Ads' }
          ]
        }
      ]
    };
  }
}

然后查看http://127.0.0.1:4200,可以看到下面的界面:

OK,在angular中集成Echarts2D图的方法到此结束,欢迎拍砖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值