minValue和maxValue作为Google Chart中hAxis的时间范围

时间:2013-06-19 08:20:34

标签: datetime google-visualization

我需要设置我的hAxis的时间范围,使得minValue为09:00,maxValue为17:00,增量为1小时(即9,10,11,12,13,14,...,17)< / p>

目前我的数据格式为H:m(例如:09:35,10:20)

var formatter3 = new google.visualization.DateFormat({pattern: 'H:m'});
formatter3.format(data,0); 

以下是我的选择:

var options = {           
            curveType: "function",
            title : '',           
            hAxis:{slantedTextAngle: 90,textStyle:{fontSize:8}},
            colors : ['red','#3366CC', '#999999'],
            vAxes: {
                0: {logScale: false, format:'0.0000'},
                1: {logScale: false}
            },
            hAxis: { 
                           format: 'H:m',
                           minValue: new Date(null, null, null, 9, 0, 0),
                           maxValue: new Date(null, null, null, 17, 0, 0),         
                           viewWindow:{min: new Date(null, null, null, 9, 0, 0),
                                       max: new Date(null, null, null, 17, 0, 0)},
            series: { 
                0: {targetAxisIndex:0, type: "line"},
                1: {targetAxisIndex:0, type: "line"},
                2: {targetAxisIndex:1, type: "bars"}
            }         
        };

然而,它仍然无效。请指教。谢谢!

1 个答案:

答案 0 :(得分:2)

不幸的是,日期和时间值会忽略minValue,maxValue和基线值。我不确定这是最近的错误,但我在一周前才注意到它。您可以尝试使用viewWindow min和max,以及gridlines.count选项来获得所需的结果。或者,您可以将所有日期值转换为字符串,如果值均匀分布,则轴将使用您的显式值。

另一个可能适合您的新功能是,您可以提供明确的刻度值数组,并带有刻度:[...]选项。在当前版本的gviz中,格式化是使用您的格式选项完成的,这应该足以满足您的需求。在即将发布的版本中,您还可以指定每个刻度值的格式。

因此,最好使用timeofday值指定示例中的时间,如下所示:

hAxis: {
  ticks: [[9, 0, 0], [10, 0, 0], [11, 0, 0], [12, 0, 0], ...]
}

我认为你可以用日期时间值做同样的事情,如果这是你的数据值。