JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

window.chart = new CanvasJS.Chart("chartContainer", {
  title: {
    text: "Histogram using Column Chart"
  },
  zoomEnabled: true,
  rangeChanged: function(e) {
    var dpsWithinViewport = 0;
    for(var j = 0; j < e.chart.data[0].dataPoints.length; j++) {
      var dataPoint = e.chart.data[0].dataPoints[j];
      if(dataPoint.x >= e.axisX[0].viewportMinimum && dataPoint.x <= e.axisX[0].viewportMaximum) {
        dpsWithinViewport++;
      }
    }
    if(e.trigger === "reset")
      updateDataPointWidth(e.chart, e.chart.data[0].dataPoints.length);
    else
      updateDataPointWidth(e.chart, dpsWithinViewport);	
    console.log(dpsWithinViewport)
  },
  data: [
    {
      type: "column",
      dataPoints: [
        { x: 10, y: 71 },
        { x: 20, y: 55 },
        { x: 30, y: 50 },
        { x: 40, y: 65 },
        { x: 50, y: 95 },
        { x: 60, y: 68 },
        { x: 70, y: 28 },
        { x: 80, y: 34 },
        { x: 90, y: 14 }
      ]
    }
  ]
});

chart.render();

updateDataPointWidth(chart, chart.data[0].dataPoints.length);

//On Resize chart width changes so as the plotArea, so dataPointWidth will vary according to width
$( window ).resize(function() {
  updateDataPointWidth(chart, chart.data[0].dataPoints.length);	
});


function updateDataPointWidth (chart, dpsLength){
  chart.set("dataPointWidth", Math.ceil(chart.axisX[0].bounds.width/dpsLength))
}