You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular 9中使用Highcharts stacked bar?求可用示例

Angular 9 集成Highcharts堆叠条形图(Stacked Bar)可运行实现

网上多数教程失效的核心原因是依赖版本不匹配,高版本的Highcharts Angular封装包不再支持Angular 9,以下是经过验证的可运行实现步骤:

第一步:安装兼容版本依赖

执行以下命令安装适配Angular 9的包版本,不要直接安装latest版本:

npm install highcharts@9.3.3 highcharts-angular@2.10.0 --save

注意:highcharts-angular@3.x及以上版本最低要求Angular 12运行环境,在Angular 9中安装会直接触发编译报错

第二步:模块注册

在需要使用图表的业务模块(例如根模块app.module.ts)中导入Highcharts的Angular封装模块:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
// 导入Highcharts图表模块
import { HighchartsChartModule } from 'highcharts-angular';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    HighchartsChartModule // 添加到导入数组
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

第三步:组件逻辑编写

在对应组件的ts文件中编写堆叠条形图配置,注意显式指定每个数据系列的类型,避免类型校验报错:

import { Component } from '@angular/core';
import * as Highcharts from 'highcharts';

@Component({
  selector: 'app-stacked-bar-demo',
  templateUrl: './stacked-bar-demo.component.html'
})
export class StackedBarDemoComponent {
  // 挂载Highcharts实例
  Highcharts: typeof Highcharts = Highcharts;
  // 图表更新触发标识
  updateFlag = false;
  // 堆叠条形图完整配置
  chartOptions: Highcharts.Options = {
    chart: {
      type: 'bar' // bar为横向条形图,column为纵向柱状图,按需选择
    },
    title: {
      text: '季度各产品线销售额堆叠统计'
    },
    xAxis: {
      categories: ['一季度', '二季度', '三季度', '四季度']
    },
    yAxis: {
      min: 0,
      title: {
        text: '销售额(万元)'
      }
    },
    legend: {
      reversed: true
    },
    plotOptions: {
      series: {
        stacking: 'normal' // 普通堆叠传'normal',百分比堆叠传'percent'
      }
    },
    series: [
      {
        name: '产品线A',
        type: 'bar',
        data: [120, 180, 150, 220]
      },
      {
        name: '产品线B',
        type: 'bar',
        data: [90, 130, 170, 190]
      },
      {
        name: '产品线C',
        type: 'bar',
        data: [60, 80, 110, 140]
      }
    ]
  };
}

第四步:模板渲染

在组件对应的html模板中添加图表容器标签,必须显式设置容器高度,否则图表会因高度为0无法显示:

<highcharts-chart
  [Highcharts]="Highcharts"
  [options]="chartOptions"
  [(update)]="updateFlag"
  style="width: 100%; height: 450px; display: block;"
></highcharts-chart>

常见运行异常排查

  • 依赖版本不匹配:优先核对highcharts-angular版本是否为2.x系列,高版本无法在Angular 9下运行
  • 系列类型缺失:每个series必须显式声明type: 'bar',否则会触发TypeScript类型校验错误
  • 堆叠配置位置错误:stacking属性需要写在plotOptions.series或plotOptions.bar下,不要直接写在chart根配置中
  • 容器样式问题:必须给highcharts-chart标签设置明确的高度值,不要依赖默认高度

内容的提问来源于stack exchange,提问作者naman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:18:13