FusionCharts - Using annotations to add a callout to a column

Created using FusionCharts Suite XT - www.fusioncharts.com

by FusionCharts

HTML

<script src="https://cdn.fusioncharts.com/fusioncharts/latest/fusioncharts.js"></script>
<script src="https://cdn.fusioncharts.com/fusioncharts/latest/themes/fusioncharts.theme.fusion.js"></script>
<!-- 
Using annotations to add a callout to a column. Positioning is done using  annotation macros e.g., $dataset.0.set.3.x or $dataset.0.set.3.y.
-->
<div id="chart-container">FusionCharts will render here</div>

JavaScript

FusionCharts.ready(function() {
  var revenueChart = new FusionCharts({
    type: 'column2d',
    renderAt: 'chart-container',
    id: "myChart",
    width: '500',
    height: '350',
    dataFormat: 'json',
    dataSource: {
      "chart": {
        "theme": "fusion",
        "caption": "Comparison of Quarterly Revenue",
        "subCaption": "Last Year",
        "showBorder": "0",
        "xAxisName": "Quarter",
        "yAxisName": "Amount (In USD)",
        "numberPrefix": "$",
        "yAxisMaxValue": "50000",
        "showValues": "0",
        "showTooltip": "0",
        //Theme
        "theme": "fint"
      },
      "data": [{
        "label": "Q1",
        "value": "25400"
      }, {
        "label": "Q2",
        "value": "29800"
      }, {
        "label": "Q3",
        "value": "21800"
      }, {
        "label": "Q4",
        "value": "26800"
      }],
      //All annotations are grouped under this element
      "annotations": {
        "drawImmediately": "1",
        "showbelow": "1",
        //Annotations on a chart can be divided across multiple groups for easy management, and manipulation through API
        "groups": [{
          //Each group needs a unique ID
          "id": "Callout",
          //Under each group, you can define multiple items. Each item is a polygon, text or image - with its own set of parameters.
          "items": [{
              //Each item needs a unique ID
              "id": "CalloutBase",
              //This item is of type rectangle
              "type": "rectangle",
              "radius": "2",
              "alpha": "90",
              "fillColor": "#6baa01",
              //Setting x and y position based on annotation macros. Here we're statically positioning it w.r.t 2nd column (0 base in JavaScript) of 1st dataset. Hence $dataset.0.set.1.x
              "x": "$dataset.0.set.1.x-110",
              "y": "$dataset.0.set.1.starty-18",
              "tox": "$dataset.0.set.1.x+110",
              "toy":...