Angular 6 中使用图表库 ngx-charts

阅读时长 11 分钟读完

在 Web 应用程序中,数据可视化是至关重要的。图表是展示数据最常用的方式之一,可以帮助用户更直观地理解和分析数据。在前端开发中,使用现成的图表库可以极大地减少开发量和提升开发效率。本文将介绍一个 Angular 6 中常用的图表库 ngx-charts,详细讲解如何在 Angular 6 中使用 ngx-charts。

ngx-charts 简介

ngx-charts 是一个基于 Angular 和 d3.js 的图表库,提供了多种常见的图表类型,包括柱形图、折线图、饼状图、热力图等。其中柱形图和折线图支持多种堆叠、分组和组合的样式,同时兼容响应式布局,可以适配不同的设备、屏幕大小。

ngx-charts 的使用非常简单,只需要在 Angular 6 项目中安装 ngx-charts 包,并在组件中引入相应的模块即可。同时 ngx-charts 提供了丰富的 API 和选项,可以帮助开发者轻松实现自定义需求和效果。

安装 ngx-charts

在 Angular 6 项目中使用 ngx-charts 首先需要安装 ngx-charts 包。可以使用 npm 命令进行安装:

之后需要在项目中引入 ngx-charts 中的模块,以使用某一种图表类型。如果需要同时使用多种图表,可以在组件中引入多个模块。

-- -------------------- ---- -------
------ - -------- - ---- ----------------
------ - ------------- - ---- ----------------------------
------ - --------------- - ---- -----------------------
------ - ------------ -   ---- ------------------

-----------
  --------      - -------------- --------------- --
  ------------- - ------------ --
  ----------    - ------------ -
--
------ ----- --------- - -

使用 ngx-charts

在引入了 ngx-charts 模块后,便可以在组件中使用 ngx-charts 提供的图表组件了。以柱形图为例,我们可以使用以下代码在组件中展示数据:

-- -------------------- ---- -------
------ - --------- - ---- ----------------

------------
  --------- ----------------
  --------- -
    ------------------------
      ------------- -----
      ----------------------
      ----------------
      ---------------------
      -------------------
      -------------------
      ---------------------
      ---------------------------------
      ---------------------------------
      -------------------------
      --------------------------
    --------------------------
  -
--
------ ----- ----------------- -
  ----------- - -
    ------- ----------- ---------- ---------- ----------
  --

  -------- - -----
  ---------- - -----
  -------------- - -----
  ---------- - ----------
  -------------- - -----
  ---------- - -------------

  ---- - -
    -
      ------- ----------
      -------- -----
    --
    -
      ------- ------
      -------- -----
    --
    -
      ------- ---------
      -------- -----
    --
    -
      ------- -----
      -------- -----
    --
    -
      ------- --------
      -------- -----
    --
    -
      ------- --------
      -------- -----
    -
  --

  --------- - -----
  --------- - -----
-

在组件中定义了数据 data 和其他配置项,然后在模板中使用 NgxChartsBarVertical 组件,将数据和配置项作为输入属性传递给组件。其中 colorScheme 定义了图表中各个元素的颜色,gradient 控制是否使用渐变颜色,showXAxis 和 showYAxis 控制是否显示横轴和纵轴,showLegend 控制是否显示图例等。

可以看到,使用 ngx-charts 可以非常方便地实现一个柱形图,并且不需要编写复杂的 SVG 代码和样式表。

ngx-charts API

除了提供各种图表组件外,ngx-charts 还提供了丰富的 API 和选项,可以帮助开发者实现更为丰富和复杂的需求。

ngx-charts-bar-vertical API

ngx-charts-bar-vertical 是柱形图组件,提供了以下 API 和选项:

  • @Input() view: [number, number]: 图表的宽度和高度。
  • @Input() scheme: any: 图表的颜色方案,可以是一个数组或者字符串。
  • @Input() customColors: any: 自定义颜色的对象。
  • @Input() animations: boolean: 是否开启动画效果。
  • @Input() legend: boolean: 是否显示图例。
  • @Input() legendTitle: string: 图例标题。
  • @Input() yAxisTickFormatting: any: 纵轴刻度格式化函数。
  • @Input() xAxisTickFormatting: any: 横轴刻度格式化函数。
  • @Input() yAxisLabel: string: 纵轴标题。
  • @Input() xAxisLabel: string: 横轴标题。
  • @Input() roundDomains: boolean: 是否将纵轴刻度取整。
  • @Input() xAxis: boolean: 是否显示横轴。
  • @Input() yAxis: boolean: 是否显示纵轴。
  • @Input() showGridLines: boolean: 是否显示网格线。
  • @Input() referenceLines: any[]: 参考线的配置数组。
  • @Input() showXAxisLabel: boolean: 是否显示横轴标题。
  • @Input() showYAxisLabel: boolean: 是否显示纵轴标题。
  • @Input() barPadding: number: 柱形之间的间隔。
  • @Input() groupPadding: number: 每组柱形之间的间隔。
  • @Input() roundEdges: boolean: 是否显示圆角柱形。
  • @Input() tooltipDisabled: boolean: 是否禁用提示框。
  • @Input() activeEntries: any[]: 当前选择的元素。
  • @Input() activate: EventEmitter<any>: 当元素被选择时触发的事件。
  • @Input() deactivate: EventEmitter<any>: 当元素被取消选择时触发的事件。
  • @Input() seriesName: any: 图表系列名称。
  • @Input() tooltipText: any: 提示框文本格式化函数。
  • @Input() tooltipPosition: any: 提示框出现的位置。
  • @Output() select: EventEmitter<any>: 当元素被选择时触发的事件。
  • @Output() click: EventEmitter<any>: 当元素被点击时触发的事件。

ngx-charts-pie-chart API

ngx-charts-pie-chart 是饼状图组件,提供了以下 API 和选项:

  • @Input() view: [number, number]: 图表的宽度和高度。
  • @Input() colorScheme: any: 图表的颜色方案,可以是一个数组或者字符串。
  • @Input() customColors: any: 自定义颜色的对象。
  • @Input() animations: boolean: 是否开启动画效果。
  • @Input() legend: boolean: 是否显示图例。
  • @Input() legendTitle: string: 图例标题。
  • @Input() tooltipDisabled: boolean: 是否禁用提示框。
  • @Input() tooltipText: any: 提示框文本格式化函数。
  • @Input() explodeSlices: boolean: 是否开启扇形区域移开效果。
  • @Input() doughnut: boolean: 是否显示甜甜圈效果。
  • @Input() arcWidth: number: 扇形区域宽度。
  • @Input() labels: boolean: 是否显示标签。
  • @Input() maxLabelLength: number: 标签最大长度。
  • @Input() tooltipPosition: any: 提示框出现的位置。
  • @Input() activeEntries: [PieChartData]: 当前选择的元素。

ngx-charts-line-chart API

ngx-charts-line-chart 是折线图组件,提供了以下 API 和选项:

  • @Input() view: [number, number]: 图表的宽度和高度。
  • @Input() colorScheme: any: 图表的颜色方案,可以是一个数组或者字符串。
  • @Input() customColors: any: 自定义颜色的对象。
  • @Input() animations: boolean: 是否开启动画效果。
  • @Input() legend: boolean: 是否显示图例。
  • @Input() legendTitle: string: 图例标题。
  • @Input() xAxisLabel: string: 横轴标题。
  • @Input() yAxisLabel: string: 纵轴标题。
  • @Input() yAxisTickFormatting: any: 纵轴刻度格式化函数。
  • @Input() xAxisTickFormatting: any: 横轴刻度格式化函数。
  • @Input() roundDomains: boolean: 是否将纵轴刻度取整。
  • @Input() xScaleMin: any: 横轴最小值。
  • @Input() xScaleMax: any: 横轴最大值。
  • @Input() showXAxis: boolean: 是否显示横轴。
  • @Input() showYAxis: boolean: 是否显示纵轴。
  • @Input() timeline: boolean: 是否显示时间线。
  • @Input() autoScale: boolean: 是否自动根据数据调整纵轴刻度范围。
  • @Input() curve: any: 折线的曲线类型。
  • @Input() lineChartData: ChartData[]: 折线数据数组。
  • @Input() showGridLines: boolean : 是否显示网格线。
  • @Input() gradient: boolean: 是否使用渐变颜色。
  • @Input() tooltipDisabled: boolean: 是否禁用提示框。
  • @Input() activeEntries: any[]: 当前选择的元素。
  • @Input() lineChartLegendColors: any: 图例的颜色数组。
  • @Input() lineChartLegend: boolean: 是否显示图例。
  • @Input() lineWidth: number: 折线宽度。
  • @Output() select: EventEmitter<any>: 当元素被选择时触发的事件。
  • @Output() activate: EventEmitter<any>: 当元素被选择时触发的事件。
  • @Output() deactivate: EventEmitter<any>: 当元素被取消选择时触发的事件。

总结

本文介绍了 Angular 6 中常用的图表库 ngx-charts,详细讲解了如何在 Angular 6 中使用 ngx-charts 展示数据,并介绍了 ngx-charts 提供的各种 API 和选项。ngx-charts 的使用非常简单,可以减少 Web 应用程序开发量和提高开发效率,同时也可以实现丰富的需求和效果。因此,推荐 Web 应用程序开发者在开发过程中使用 ngx-charts,提升 Web 应用程序的数据可视化能力。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a4111b48841e989407f724

纠错
反馈