Search code examples
javascriptamchartsamstock

Remove bank holidays from X Axis by amchart


I have data by date like this there is no 2017/07/17,2017/07/16,2017/07/15 because they are bank holidays.

chartData = new Array();
        chartData[0] = new Array();
        chartData[0].closePrice = 1207;     
        chartData[0].date =  new Date("2017/07/12");
        chartData[1] = new Array();
        chartData[1].closePrice = 1227;     
        chartData[1].date =  new Date("2017/07/13");
        chartData[2] = new Array();
        chartData[2].closePrice = 1216;     
        chartData[2].date =  new Date("2017/07/14");
        chartData[3] = new Array();
        chartData[3].closePrice = 1234;     
        chartData[3].date =  new Date("2017/07/18");

I use this chartData as dataProvider for making graph.

var dataSet = new AmCharts.DataSet();
dataSet.dataProvider = chartData;
dataSet.categoryField = "date";

chart.dataSets = [dataSet];


var stockPanel = new AmCharts.StockPanel();
stockPanel.title = "Stock Main";
stockPanel.id = "stockPanel";
stockPanel.showCategoryAxis = false;
stockPanel.recalculateToPercents = "never";

var valueAxis = new AmCharts.ValueAxis();
valueAxis.dashLength = 5;
stockPanel.addValueAxis(valueAxis);
stockPanel.categoryAxis.dashLength = 5;
stockPanel.categoryAxis.equalSpacing = true; // it doesn't work ....

var graph = new AmCharts.StockGraph();
graph.type = "line";
graph.valueField = "closePrice";
stockPanel.addStockGraph(graph);

however 2017/07/15,2017/07/16 2017/07/16 are drawn on X axis , even there are no data.

Even .equalSpacing looks in vain.

How can I remove this???


Solution

  • You have to set equalSpacing in the categoryAxesSettings property in the stock chart for it to work.

    //object-based setup
    chart.categoryAxesSettings = new AmCharts.CategoryAxesSettings();
    chart.categoryAxesSettings.equalSpacing = true;
    //makeChart version
    AmCharts.makeChart("chartdiv", {
      // ...
      "categoryAxesSettings": {
        "equalSpacing": true
      },
      // ...
    });
    

    Demo