What is @swimlane/ngx-charts?
@swimlane/ngx-charts is a declarative charting framework for Angular. It provides a variety of chart types and is built using D3.js. The package is designed to be simple to use and highly customizable, making it suitable for a wide range of data visualization needs.
What are @swimlane/ngx-charts's main functionalities?
Bar Chart
This feature allows you to create a vertical bar chart. The code sample demonstrates how to bind data to the chart and configure various options such as axis labels and legend.
<ngx-charts-bar-vertical [results]="data" [scheme]="colorScheme" [xAxis]="true" [yAxis]="true" [legend]="true" [showXAxisLabel]="true" [showYAxisLabel]="true" [xAxisLabel]="'Country'" [yAxisLabel]="'Population'"></ngx-charts-bar-vertical>
Line Chart
This feature allows you to create a line chart. The code sample shows how to set up the chart with data and configure the axes and legend.
<ngx-charts-line-chart [results]="data" [scheme]="colorScheme" [xAxis]="true" [yAxis]="true" [legend]="true" [showXAxisLabel]="true" [showYAxisLabel]="true" [xAxisLabel]="'Year'" [yAxisLabel]="'Value'"></ngx-charts-line-chart>
Pie Chart
This feature allows you to create a pie chart. The code sample demonstrates how to bind data to the chart and configure options such as the legend and labels.
<ngx-charts-pie-chart [results]="data" [scheme]="colorScheme" [legend]="true" [doughnut]="false" [labels]="true"></ngx-charts-pie-chart>
Other packages similar to @swimlane/ngx-charts
ng2-charts
ng2-charts is an Angular wrapper for Chart.js. It provides a variety of chart types and is known for its simplicity and ease of use. Compared to @swimlane/ngx-charts, ng2-charts is more lightweight but may not offer as many customization options.
angular-google-charts
angular-google-charts is an Angular wrapper for Google Charts. It offers a wide range of chart types and is highly customizable. However, it requires an internet connection to load the Google Charts library, whereas @swimlane/ngx-charts is self-contained.
highcharts-angular
highcharts-angular is an Angular wrapper for Highcharts. It provides a comprehensive set of chart types and is highly customizable. Highcharts is known for its advanced features and performance, but it is a commercial product with licensing fees, unlike @swimlane/ngx-charts which is open-source.
ngx-charts
Declarative Charting Framework for Angular!
ngx-charts is unique because we don't merely wrap d3, nor any other chart engine for that matter. It is using Angular to render and animate the SVG elements with all of its binding and speed goodness, and uses d3 for the excellent math functions, scales, axis and shape generators. By having Angular do all of the rendering it opens us up to endless possibilities the Angular platform provides such as AoT, SSR, etc.
Data visualization is a science but that doesn't mean it has to be ugly. One of the big efforts we've made while creating this project is to make the charts aesthetically pleasing. The styles are also completely customizable through CSS, so you can override them as you please.
Also, constructing custom charts is possible by leveraging the various ngx-charts components that are exposed through the ngx-charts module.
For more info, check out the documentation and the demos.
Features
Chart Types
- Horizontal & Vertical Bar Charts (Standard, Grouped, Stacked, Normalized)
- Line
- Area (Standard, Stacked, Normalized)
- Pie (Explodable, Grid, Custom legends)
- Bubble
- Donut
- Gauge (Linear & Radial)
- Heatmap
- Treemap
- Number Cards
Customization
- Autoscaling
- Timeline Filtering
- Line Interpolation
- Configurable Axis Labels
- Legends (Labels & Gradient)
- Advanced Label Positioning
- Real-time data support
- Advanced Tooltips
- Data point Event Handlers
- Works with ngUpgrade
Install
To use ngx-charts in your project install it via npm:
npm i @swimlane/ngx-charts --save
Custom Charts
To learn how to use the ngx-charts components to build custom charts and find examples, please refer to our Custom Charts Page.
Release
- Checkout master (
git checkout master
) - Pull master (
git pull
) - Refresh node modules (
npm ci
) - Run tests (
npm test
) - Examine log to determine next version (X.Y.Z)
- Run
git checkout -b release/X.Y.Z
- Update version in
projects/swimlane/ngx-charts/package.json
. - Update changelog in
projects/docs/changelog.md
- Run
git commit -am "(release): X.Y.Z"
- Run
git tag X.Y.Z
- Run
git push origin HEAD --tags
- Run
npm run publish:lib
- Submit PR
Credits
ngx-charts
is a Swimlane open-source project; we believe in giving back to the open-source community by sharing some of the projects we build for our application. Swimlane is an automated cyber security operations and incident response platform that enables cyber security teams to leverage threat intelligence, speed up incident response and automate security operations.
SecOps Hub is an open, product-agnostic, online community for security professionals to share ideas, use cases, best practices, and incident response strategies.