2013-02-28 88 views
1

我想创建一个折线图,显示整个页面的点击次数。不过,我只想让横轴在每个月的第一个月显示一个标签。我目前有这样的东西,但它只显示第一个月。谷歌可视化水平轴标签

view.setColumns([{ 
    type: 'string', 
    label: 'Month', 
    calc: function(dt, row) { 
    var date = dt.getValue(row, 0).split('/'); 
    date = new Date(date[2], date[1] - 1, date[0]); 
    var current_month = date.getMonth(); 
    if (current_month > month || (current_month == 0 && month != 0)) { 
     month = current_month; 
     return months[month]; 
    } else { 
     return null; 
    } 
    } 
}, 1]); 

回答

1

如果您的类别值是Date()型的,谷歌通常会很好地让他们通过每月在默认情况下显示。见下面的例子:

function drawVisualization() { 
    // Create and populate the data table. 
    var data = new google.visualization.DataTable(); 
    data.addColumn('date', 'Date'); 
    data.addColumn('number', 'Cats'); 
    data.addColumn('number', 'Dogs'); 
    data.addColumn('number', 'Rabbits'); 
    data.addRows([ 
    [new Date(1990, 0, 5), 1, 1, 0.5], 
    [new Date(1990, 1, 10), 2, 0.5, 1], 
    [new Date(1990, 2, 15), 4, 1, 0.5], 
    [new Date(1990, 3, 20), 8, 0.5, 1], 
    [new Date(1990, 4, 25), 7, 1, 0.5], 
    [new Date(1990, 5, 30), 7, 0.5, 1], 
    [new Date(1990, 6, 5), 8, 1, 0.5], 
    [new Date(1990, 7, 10), 4, 0.5, 1], 
    ]); 

    // Create and draw the visualization. 
    new google.visualization.LineChart(document.getElementById('visualization')). 
    draw(data, null); 
} 

如果你的第一列不存储为一个日期,他们只是值,那么我会建议将它们转换为日期的,而不是为了让谷歌做了为你努力工作。

+0

谢谢,完美!我使用的是不允许日期的google.visualization.arrayToDataTable。将其更改为您的格式,并使用日期对象使其显示得更好。 – 2013-03-01 12:27:48

+0

很高兴能帮到你!一般来说,'ArrayToDataTable()'比上面这种方式更混乱。通过使用'DataTable()',您可以非常明确地设置每个列,类型和其他所有的角色。您还可以创建for循环来更轻松地创建表格,并且通常会有更好的时间。祝你好运! – jmac 2013-03-02 04:25:08