ng-apexcharts is a wrapper for apexcharts for angular. It introduces one simple component that enables you to use apexcharts in an angular project.
For a demo checkout: Stackblitz example
- Install using npm:
npm install apexcharts ng-apexcharts --save
- Open angular.json and under scripts add:
"scripts": [
"node_modules/apexcharts/dist/apexcharts.min.js"
]
- Add ng-apexcharts-module to imports
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
NgApexchartsModule,
...
]
In any component you can use the chart using:
<apx-chart [series]="series" [chart]="chart" [title]="title"></apx-chart>
You need to provide at least the series and chart attribute to make sure the chart can get created.
You can also use any other attribute from the following options.
All options of the chart can inserted using the attributes. This is a list of all available attributes:
@Input() chart: ApexChart;
@Input() annotations: ApexAnnotations;
@Input() colors: string[];
@Input() dataLabels: ApexDataLabels;
@Input() series: ApexAxisChartSeries | ApexNonAxisChartSeries;
@Input() stroke: ApexStroke;
@Input() labels: string[];
@Input() legend: ApexLegend;
@Input() fill: ApexFill;
@Input() tooltip: ApexTooltip;
@Input() plotOptions: ApexPlotOptions;
@Input() responsive: ApexResponsive[];
@Input() xaxis: ApexXAxis;
@Input() yaxis: ApexYAxis | ApexYAxis[];
@Input() grid: ApexGrid;
@Input() states: ApexStates;
@Input() title: ApexTitleSubtitle;
@Input() subtitle: ApexTitleSubtitle;
@Input() theme: ApexTheme;
With the attribute autoUpdateSeries
you can control if the chart component should
call the updateSeries
function automatically if the series attribute is changed.
Set this attribute to false if you are using and changing the type property in your
series for a mixed chart. This only has the effect that the whole chart rerenders
even if only the series changes.
For a basic usage of the charts you dont need to use the methods of the chart.
But if you want to toggle a series for example you need to call them. All methods are proxied through the component so that you dont need to access the DOM by yourself.
Just reference the component as a ViewChild in your Component by using:
@ViewChild('chartObj') chart: ChartComponent;
and changing the template to this:
<apx-chart #chartObj></apx-chart>
Now you're able to call methods from your Component.