2013-04-29 55 views
1

是否可以使用Google Charts开发门槛?谷歌图表阈值?

我有一个5列的Google组合图表。理论上,我想使用addRange格式化函数来改变第二列的颜色,如果它在50以下(基本上它是一个激励工具,你的每日目标是做至少50个调用,如果你不这样做,图表会显示如果你这样做,那么它就是默认的颜色)

这是我当前创建图表的代码,而不是格式。谢谢。

// Load the Visualization API and the piechart package. 
    google.load('visualization', '1.0', {'packages':['corechart']}); 

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

    // Callback that creates and populates a data table, 
    // instantiates the pie chart, passes in the data and 
    // draws it. 
    function drawChart() { 

    var data = new google.visualization.DataTable(); 

    data.addColumn('string', 'Rep'); 
    data.addColumn('number', 'Yesterday'); 
    data.addColumn('number', 'Last 7'); 
    data.addColumn('number', 'Last 30'); 
    data.addColumn('number', 'The Bar'); 

    $("#data-table thead th").each(function(){ 

     var initials = $(this).text(); 

     var yesterday = parseInt($("." + initials + ".Yesterday").text()); 

     var seven = parseInt($("." + initials + ".seven").text()); 

     var thirty = parseInt($("." + initials + ".thirty").text()); 

     data.addRow([initials, yesterday, seven, thirty, 50]); 

    }); 

    // Set chart options 
    var title = $("#data-table caption").text(); 
    var options = {'title':title, 
       seriesType: 'bars', 
       series: {3: {type: "line"}}, 
       hAxis: {title: 'Rep'}, 
       vAxis: {title: 'Outbound Calls'} 

       }; 

    var formatter = new google.visualization.TableColorFormat(); 

    formatter.addRange(50,0, 'red', '#000'); 

    formatter.format(data, 1); 

    // Instantiate and draw our chart, passing in some options. 
    var chart = new google.visualization.ComboChart(document.getElementById('call-log')); 
    chart.draw(data, options); 

} 

回答

0

要做到这一点,最简单的方法是做对你的数据进行快速检查,并设置一个变量基于什么列的值是两个串联的颜色。

所以目前您有下列选项代码:

var options = {'title':title, 
       seriesType: 'bars', 
       series: {3: {type: "line"}}, 
       hAxis: {title: 'Rep'}, 
       vAxis: {title: 'Outbound Calls'} 

       }; 

如果你改变了这个轻微,可以使系列2五色基于变量:

var options = {'title':title, 
       seriesType: 'bars', 
       series: { 
          3: {type: "line"} 
          // set the color of column 2 (series #1) via variable 
          1: {color: colorvar} 
         }, 
       hAxis: {title: 'Rep'}, 
       vAxis: {title: 'Outbound Calls'} 

       }; 

然后,你可以创建一个javascript函数来确定第2列的值是什么,以及颜色是否适当:

var colorvar = "#FF0000"; 
if (data.getValue(0,1) >= 50) 
    colorvar = "#000000"; 

这样,如果值在50以下,它将被读取。否则它会变成黑色。然后,当您创建选项时,它将使用此功能指定的任何颜色。这样,您可以根据第2列中的值进行着色。