Framework:Javascript Data GridAngular Data GridReact Data GridVue Data Grid

Angular Data Grid: Save / Restore Charts

This section shows how the Grid API can be used to save and restore charts.

Saving / Restoring Charts

The example below demonstrates how you can save and then later restore a chart. You can make changes to the chart type, theme, data and formatting options and note how the restored chart looks the same as the chart that was saved.

  • Create a range chart from the grid, which will be shown in a container below the grid.
  • Change the chart type, theme, data and/or formatting in order to see the changes restored later.
  • Click "Save chart" to persist a model of the visible chart into a local variable. An alert will be shown to confirm that this has happened.
  • Click "Clear chart" to destroy the existing chart.
  • Click "Restore chart" to restore the previously saved chart.

API Reference

A chart model that represent all the state information about the rendered charts can be obtained using getChartModels(). These models are returned in a format that can be easily used with the other API methods to later restore the chart.

getChartModels
Returns a list of models with information about the charts that are currently rendered from the grid.
getChartModels = () => ChartModel[] | undefined;

interface ChartModel {
  version?: string;
  modelType: ChartModelType;
  chartId: string;
  chartType: ChartType;
  cellRange: CellRangeParams;
  chartThemeName?: string;
  chartOptions: AgChartThemeOverrides;
  suppressChartRanges?: boolean;
  aggFunc?: string | IAggFunc;
  unlinkChart?: boolean;
  seriesChartTypes?: SeriesChartType[];
}

type ChartType = 
      'column' 
    | 'groupedColumn' 
    | 'stackedColumn' 
    | 'normalizedColumn' 
    | 'bar' 
    | 'groupedBar' 
    | 'stackedBar' 
    | 'normalizedBar' 
    | 'line' 
    | 'scatter' 
    | 'bubble' 
    | 'pie' 
    | 'doughnut' 
    | 'area' 
    | 'stackedArea' 
    | 'normalizedArea' 
    | 'histogram' 
    | 'columnLineCombo' 
    | 'areaColumnCombo' 
    | 'customCombo'


interface SeriesChartType {
  colId: string;
  chartType: ChartType;
  secondaryAxis?: boolean;
}

These models can then be supplied to the following grid api method to restore the charts:

restoreChart
Function
Restores a chart using the ChartModel that was previously obtained from getChartModels().
restoreChart = (
    chartModel: ChartModel,
    chartContainer?: HTMLElement
) => ChartRef | undefined;

interface ChartModel {
  version?: string;
  modelType: ChartModelType;
  chartId: string;
  chartType: ChartType;
  cellRange: CellRangeParams;
  chartThemeName?: string;
  chartOptions: AgChartThemeOverrides;
  suppressChartRanges?: boolean;
  aggFunc?: string | IAggFunc;
  unlinkChart?: boolean;
  seriesChartTypes?: SeriesChartType[];
}

type ChartType = 
      'column' 
    | 'groupedColumn' 
    | 'stackedColumn' 
    | 'normalizedColumn' 
    | 'bar' 
    | 'groupedBar' 
    | 'stackedBar' 
    | 'normalizedBar' 
    | 'line' 
    | 'scatter' 
    | 'bubble' 
    | 'pie' 
    | 'doughnut' 
    | 'area' 
    | 'stackedArea' 
    | 'normalizedArea' 
    | 'histogram' 
    | 'columnLineCombo' 
    | 'areaColumnCombo' 
    | 'customCombo'


interface SeriesChartType {
  colId: string;
  chartType: ChartType;
  secondaryAxis?: boolean;
}

interface ChartRef {
  // The id of the created chart. 
  chartId: string;
  // The chart instance that is produced by AG Charts which can be used to interact with the chart directly. 
  chart: any;
  // The chart DOM element, which the application is responsible for placing into the DOM. 
  chartElement: HTMLElement;
  // The application is responsible for calling this when the chart is no longer needed. 
  destroyChart: () => void;
}

Note that an optional chartContainer can be specified when restoring a chart.

Next Up

Continue to the next section to learn about: Downloading Chart Image.