Angular完整项目开发13 - 使用图表(ng2-charts+chart.js)

Angular项目原型的主体功能差不多了,接下来添加一些其他功能,从图表开始。

图表的库有多种选择,我选了ng2-chart,这名字听上去就是给Angular御用的,虽然实际做下来发现坑不少。

1.安装ng2-charts和chart.js

这一步巨坑,如果直接安装,默认会用最新版本,然后各种报错,折腾了三个晚上。最后发现居然是版本不兼容,所以只能指定版本安装。坑!

npm install ng2-charts@2.3.0 --save
npm install chart.js@2.9.3 --save
npm install chartjs-plugin-datalabels --save //显示图表中的数值

2.引用chart与组织数据

app.module.ts

import { ChartsModule } from 'ng2-charts';
...
imports: [
   ...
   ChartsModule
]

stat.component.ts   其中涉及到data label的部分(chartjs-plugin-datalabels),不能直接用ng2-charts的官方demo,要修改写法,如下。又折腾了两个小时。坑!

import { ChartOptions, ChartType, ChartDataSets } from 'chart.js';
import { Label, Color } from 'ng2-charts';
/*注意,下面datalabel的引用和ng2-charts官方例子写法不一样,不能用花括号。
  这里的 pluginDataLabels是随便起的名字,改成ABC都可以。*/
import  pluginDataLabels  from 'chartjs-plugin-datalabels';
//import  {pluginDataLabels}  from 'chartjs-plugin-datalabels';
...
public barChartOptions: ChartOptions = {
    responsive: true, 
    scales: {
      xAxes: [{}],
      yAxes: [
        {
          ticks: {
            beginAtZero: true
          }
        }
      ]
    },
    plugins: {
      datalabels: {
        anchor: 'end',
        align: 'end',
      }
    }
  };
  public barChartLabels: Label[] = ['古里', '碧溪', '支塘', '沙家浜', '虞山', '梅李'];
  public barChartType: ChartType = 'bar';
  public barChartLegend = true;
  public barChartPlugins = [pluginDataLabels]; //显示每一列的数值
  public barChartColors: Color[] = [
    { backgroundColor: '#5DB4EE' } //可放多个颜色
  ]
  
  public barChartData: ChartDataSets[] = [
    { data: [3, 5, 2, 3, 8, 2], label: '设备数量' } //可放多个系列
  ];

stat.component.html

<div style="display: block;width: 600px; height: 400px;"> 
  <canvas baseChart 
    [datasets]="barChartData"
    [labels]="barChartLabels"
    [options]="barChartOptions"
    [plugins]="barChartPlugins"
    [colors]="barChartColors"
    [legend]="barChartLegend"
    [chartType]="barChartType">
  </canvas>
</div>

效果:

 

参考:

https://valor-software.com/ng2-charts/#/BarChart

https://stackoverflow.com/questions/66936633/chart-js-ng2-charts-not-working-on-angular2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值