Results:
Loading...

JavaScript ChartsGet Started with AG Charts

AG Charts is a powerful standalone component with no dependencies. The charts factory API can be used to seamlessly create and update data visualizations independently of the grid.

Quick Look Code Example

const data = [
     {
         beverage: 'Coffee',
         Q1: 700,
         Q2: 600,
         Q3: 560,
         Q4: 450
     },
     {
         beverage: 'Tea',
         Q1: 520,
         Q2: 450,
         Q3: 380,
         Q4: 270
     },
     {
         beverage: 'Milk',
         Q1: 200,
         Q2: 190,
         Q3: 170,
         Q4: 180
     },
 ];

 const options = {
     container: document.getElementById('myChart'),
     data: data,
     title: {
         text: 'Beverage Expenses'
     },
     subtitle: {
         text: 'per quarter'
     },
     footnote: {
         text: 'Based on a sample size of 200 respondents'
     },
     padding: {
         top: 40,
         right: 40,
         bottom: 40,
         left: 40
     },
     series: [
         { type: 'column', xKey: 'beverage', yKey: 'Q1', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q2', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q3', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q4', stacked: true },
     ],
     legend: {
         spacing: 40
     },
 };

 agCharts.AgChart.create(options);

Getting Started

In this article we will walk through the necessary steps to add AG Charts to an existing JavaScript project and produce your first chart.chart.

Your First Chart

Let's say you want to visualise how much you spend on coffee each quarter and that you have the following data:

const data = [
     {
         quarter: 'Q1',
         spending: 700,
     },
     {
         quarter: 'Q2',
         spending: 600,
     },
     {
         quarter: 'Q3',
         spending: 560,
     },
     {
         quarter: 'Q4',
         spending: 450,
     },
 ];

To render it we can use this simple chart factory configuration:

agCharts.AgChart.create({
     data: data,
     container: document.getElementById('myChart'),
     series: [{
         xKey: 'quarter',
         yKey: 'spending',
     }],
 });

Here we pass in the data we want to render, the container element for the chart (our chart won't be attached to the DOM without it) and the series to use to plot the data.

The series type defaults to 'line' so the only series configuration we need to specify is which keys to use to fetch the data to be plotted along the horizontal (x) and vertical (y) axes.

The series property is an array because it is possible to supply multiple series (including mixed kinds!) into a single chart.

The default axes configuration is a category axis on the bottom and number axis on the left of a chart, both of which are exactly what we need in this case, so we don't need to supply these here.

Legend

By default, the chart displays a legend when there is more than one series present. To enable the legend for a chart with a single series, set legend.enabled to true.

The chart legend uses the yKey for the series, which in this case is 'spending'. This can be renamed using the yName property.

agCharts.AgChart.create({
     data: data,
     container: document.getElementById('myChart'),
     series: [{
         xKey: 'quarter',
         yKey: 'spending',
+        yName: 'Coffee Spending',
     }],
+    legend: {
+        enabled: true,
+    },
 });

Basic Column Chart

Now let's try something more interesting. Let's say you want to visualise how much is spent on coffee, milk and tea in your company each quarter and in total. Your data might look something like this:

const data = [
     {
         beverage: 'Coffee',
         Q1: 700,
         Q2: 600,
         Q3: 560,
         Q4: 450
     },
     {
         beverage: 'Tea',
         Q1: 520,
         Q2: 450,
         Q3: 380,
         Q4: 270
     },
     {
         beverage: 'Milk',
         Q1: 200,
         Q2: 190,
         Q3: 170,
         Q4: 180
     },
 ];

This time, let's choose another series type to plot the data: stacked columns. Here's the chart factory configuration we can use to do that:

agCharts.AgChart.create({
     data: data,
     container: document.getElementById('myChart'),
     series: [
         { type: 'column', xKey: 'beverage', yKey: 'Q1', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q2', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q3', stacked: true },
         { type: 'column', xKey: 'beverage', yKey: 'Q4', stacked: true },
     ],
 });

Chart tooltips are enabled by default so you can hover over a block to see its value.

Labels and Titles

We can enhance our chart by providing a label for each block segment. We can set a label's fontSize, fontFamily and other properties, but for now we'll just accept the default values:

agCharts.AgChart.create({
     data: data,
     container: document.getElementById('myChart'),
     series: [
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q1',
             stacked: true,
+            label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q2',
             stacked: true,
+            label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q3',
             stacked: true,
+            label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q4',
             stacked: true,
+            label: {},
         },
     ],
 });

If we then want to add a title and subtitle to the chart, we can simply add this to our chart config:

agCharts.AgChart.create({
     data: data,
     container: document.getElementById('myChart'),
+    title: {
+        text: 'Beverage Expenses',
+    },
+    subtitle: {
+        text: 'per quarter',
+    },
+    footnote: {
+        text: 'Based on a sample size of 200 respondents',
+    },
     series: [
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q1',
             stacked: true,
             label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q2',
             stacked: true,
             label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q3',
             stacked: true,
             label: {},
         },
         {
             type: 'column',
             xKey: 'beverage',
             yKey: 'Q4',
             stacked: true,
             label: {},
         },
     ],
 });

Install AG Charts with NPM

To install AG Charts and update your package.json file run:

npm install --save ag-charts-community

Then import the module as follows:

import * as agCharts from 'ag-charts-community';

Creating charts is done using the agCharts.AgChart factory as shown in the example above, i.e.

agCharts.AgChart.create(options);

Now that you've had a taste of what it's like to use AG Charts, we encourage you to explore our documentation to learn more.