Javascript 谷歌图表,设置轴上的最小范围

Javascript 谷歌图表,设置轴上的最小范围,javascript,charts,google-api,google-visualization,Javascript,Charts,Google Api,Google Visualization,我有一个折线图/面积图,我想在y轴上设置一个最小范围。 假设我的观点是[0300]、[1270]、[2230]、[3260](这些观点是通过ajax检索的,所以它们不是静态的)。 我希望y轴范围至少为100,但默认情况下google将最大值设置为最大值(本例中为300),最小值设置为最小值(本例中为230),因此本例中的范围为(实际上是)70,我希望它至少为100,因此图表最大值应为(300+230)/2+50,最小值为(300+230)/2-50,因此我有一个100范围,并且图表垂直居中对齐

我有一个折线图/面积图,我想在y轴上设置一个最小范围。 假设我的观点是
[0300]、[1270]、[2230]、[3260]
(这些观点是通过ajax检索的,所以它们不是静态的)。 我希望y轴范围至少为100,但默认情况下google将最大值设置为最大值(本例中为300),最小值设置为最小值(本例中为230),因此本例中的范围为(实际上是)70,我希望它至少为100,因此图表最大值应为
(300+230)/2+50
,最小值为
(300+230)/2-50
,因此我有一个100范围,并且图表垂直居中对齐

我希望范围有一个最小值而不是最大值,如果我的点是
[0100]、[1240]、[5160]
,那么范围应该与数据范围相匹配(在这种情况下为140),如果最佳值较小(100)

基本上,当数据的实际差异很小时,我不希望图表显示出很大的差异。我知道如何在轴上设置固定的最大值和最小值,但这并不能解决我的问题。 这是我的实际代码:

$.fn.createChart = function(url,options){
var obj = $(this);
console.log('CREATING CHART: '+url);
// Load the Visualization API and the linechart package.
if(!$.canAccessGoogleVisualization()){
    google.charts.load('current', {packages: ['corechart', 'line']});
}


// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
  var jsonData = $.ajax({
      url: url ,
      dataType: "json",
      async: false
      }).responseText;

  // Create our data table out of JSON data loaded from server.
  var data = new google.visualization.DataTable(jsonData);

//Default options
var def = {
        width: obj.width(),
        height: obj.height(),
      curveType: 'function',
      legend: { position: 'bottom' },
      hAxis: {
                format: 'dd/MM'
            },

            animation:{
                "startup": true,
    duration: 1000,
    easing: 'out',
  }
    };

//Overwrite default options with passed options
    var options = typeof options !== 'undefined' ? $.mergeObjects(def,options) : def;  

  // Instantiate and draw our chart, passing in some options.
  var chart = new google.visualization.AreaChart(obj.get(0));
  chart.draw(data, options);
}

}
$.mergeObjects = function(obj1,obj2){
for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; }
return obj1;
}
$.canAccessGoogleVisualization = function() 
{
    if ((typeof google === 'undefined') || (typeof google.visualization === 'undefined')) {
   return false;
    }
    else{
     return true;
   }
}
您可以使用DataTable上的来查找最小值和最大值

然后应用您的逻辑设置
vAxis上的
viewWindow

请参阅以下工作片段

google.charts.load('current'{
回调:函数(){
var data=google.visualization.arrayToDataTable([
['X','Y'],
[0, 300],
[1, 270],
[2, 230],
[3, 260]
]);
var yMin;
var yMax;
var columnRange=data.getColumnRange(1);
如果((columnRange.max-columnRange.min)<100){
yMin=((columnRange.max+columnRange.min)/2)-50;
yMax=((columnRange.max+columnRange.min)/2)+50;
}否则{
yMin=columnRange.min;
yMax=columnRange.max;
}
var chart=new google.visualization.AreaChart(document.getElementById('chart_div'));
图表绘制(数据、{
言辞:{
视图窗口:{
敏:伊敏,
马克斯:伊马克斯
}
}
});
},
软件包:['corechart']
});

这正是我想要的!在google api中找不到getColumnRange,只是查看窗口。。。谢谢