Column Chart


A column chart is a chart that visualizes data as a set of rectangular columns, their lengths being proportional to the values they represent. The vertical axis shows the values, and the horizontal axis shows the categories they belong to. In multiple-series column charts, values are grouped by categories.

The column chart is used very widely to show comparison among categories and sometimes to visualize time-based data.

This article explains how to create a basic Column chart as well as configure settings that are specific to the type. You can also see the table below to get a brief overview of the Column chart's characteristics:

ModulesCore + Basic Cartesian / Base
Data Fieldsx, value
Multiple SeriesYES
StackedStacked Column, Percent Stacked Column
3D3D Column
Error BarsColumn Chart with Error Bars
PolarPolar Column
StockStock Column
Column Sparkline
WinLoss Sparkline
Chartopedia: Column Chart
General Settings


The Column chart requires adding the Core and Basic Cartesian modules:

<script src=""></script>
<script src=""></script>

Alternatively, you can use the Base module, which includes, among other things, the two modules mentioned above:

<script src=""></script>

Learn more: Modules.

Quick Start

To create a Column chart, use the anychart.column() chart constructor. If you pass the data to this chart constructor, it creates a Column series.

To create a Column series explicitly, call the column() method.

The following sample demonstrates how a basic Column chart is created:

// create data
var data = [
  ["John", 10000],
  ["Jake", 12000],
  ["Peter", 13000],
  ["James", 10000],
  ["Mary", 9000]

// create a chart
chart = anychart.column();

// create a column series and set the data
var series = chart.column(data);

// set the container id

// initiate drawing the chart


General Settings

In AnyChart there are many settings that are configured in the same way for all chart types, including the Column chart (for example, legend and interactivity settings).

Read the overview of general settings: General Settings.

Special Settings


All Points

The appearance settings of a Column chart can be configured in three states: normal, hover, and selected. Use the normal(), hovered(), and selected() methods.

Combine them with the following methods:

Also, you can use some other methods from anychart.core.StateSettings.

In the sample below, there are two Column series with appearance settings configured:

// create the first series
var series1 = chart.column(seriesData_1);

// configure the visual settings of the first series
series1.normal().fill("#00cc99", 0.3);
series1.hovered().fill("#00cc99", 0.1);
series1.selected().fill("#00cc99", 0.5);
series1.normal().stroke("#00cc99", 1, "10 5", "round");
series1.hovered().stroke("#00cc99", 2, "10 5", "round");
series1.selected().stroke("#00cc99", 4, "10 5", "round");

// create the second series
var series2 = chart.column(seriesData_2);

// configure the visual settings of the second series
series2.normal().fill("#0066cc", 0.3);
series2.hovered().fill("#0066cc", 0.1);
series2.selected().fill("#0066cc", 0.5);
series2.normal().hatchFill("forward-diagonal", "#0066cc", 1, 15);
series2.hovered().hatchFill("forward-diagonal", "#0066cc", 1, 15);
series2.selected().hatchFill("forward-diagonal", "#0066cc", 1, 15);
series2.hovered().stroke("#0066cc", 2);
series2.selected().stroke("#0066cc", 4);


Individual Points

If you use object notation to set the data, you can change the appearance (and some other settings) of individual columns by adding special fields to your data:

// create data
var data = [
  {x: "John", value: 10000},
  {x: "Jake", value: 12000},
  {x: "Peter", value: 13000,
   normal:   {
               fill: "#5cd65c",
               stroke: null,
               label: {enabled: true}
   hovered:  {
               fill: "#5cd65c",
               stroke: null,
               label: {enabled: true}
   selected: {
               fill: "#5cd65c",
               stroke: null,
               label: {enabled: true}
  {x: "James", value: 10000},
  {x: "Mary", value: 9000}

// create a chart
chart = anychart.column();

// create a column series and set the data
var series = chart.column(data);


If you use an array to set the data, you can also configure the appearance of each column individually, but in a slightly different way. You should first add visual parameters to the data set and then map fields for them so that they can be interpreted by the component:

// create a data set
var data =[
  ["John", 10000, 12500],
  ["Jake", 12000, 15000],
  ["Peter", 13000, 16500, "#5cd65c", "#009933", null, {enabled: true}],
  ["James", 10000, 13000],
  ["Mary", 9000, 11000]

// map the data
var seriesData_1 = data.mapAs({x: 0, value: 1, fill: 3, stroke: 5, label: 6});
var seriesData_2 = data.mapAs({x: 0, value: 2, fill: 4, stroke: 5, label: 6});

// create a chart
chart = anychart.column();

// create series and set the data
var series1 = chart.column(seriesData_1);
var series2 = chart.column(seriesData_2);



To set the padding between columns and column groups, use these methods:

Padding is measured as a ratio to the width of columns (the width is calculated automatically). So, if it is < 1, the space between columns or column groups is less than the width of columns, and vice versa. If padding is set to 0, there is no space between columns/groups, and a negative parameter makes columns overlap each other.

Single Series

Please note that in AnyChart single-series column charts are, technically speaking, composed of one-element column groups, so you should use barGroupsPadding() to configure the padding between columns. In the following sample it is set to 0:

// create a column series
var series = chart.column(data);

// set the padding between column groups


Multiple Series

The barsPadding() method works only with multiple-series charts: it sets the padding between columns within a group. The space between groups is set via barGroupsPadding().

In the sample below, there is a multiple-series Column chart with the padding between columns and between column groups set to -0.5 and 2:

// create the first series
var series1 = chart.column(seriesData_1);

// create the second series
var series2 = chart.column(seriesData_2);

// set the padding between columns

// set the padding between column groups


Point Size

This chart type allows you to set the size of its points. Read more in the Point Size article.


Labels are text or image elements that can be placed anywhere on any chart (you can enable them on a whole series or in a single point). For text labels, font settings and text formatters are available.


A Tooltip is a text box displayed when a point on a chart is hovered over. There is a number of visual and other settings available: for example, you can edit the text by using font settings and text formatters, change the style of background, adjust the position of a tooltip, and so on.

Stacked Column

Stacked and percent stacked charts are multiple-series charts where related values are placed atop one another, which allows comparing the the contribution of a value to a total, either in absolute or percentage terms.

In AnyChart, you can enable a special mode of the scale to make series stack together: see Stacked Charts.

To learn about the stacked versions of the Column chart, see:

Vertical Column (Bar)

Most types of series in AnyChart can be drawn both in horizontal and vertical orientation: Vertical Charts.

The vertical column chart is called the bar chart: it shows categories on the vertical axis instead of the horizontal axis and represents values as bars instead of columns. Read more: Bar Chart.

3D Column

Using AnyChart, you can create 3D versions of some chart types, including the Column chart.

To learn about 3D charts in general, see 3D Charts.

The 3D Column chart is described in the following article: 3D Column Chart.