第一次加载图表时的Google Visualization Animation

Tri*_*wat 9 javascript charts google-visualization

我想知道我是否可以在第一次绘制时将动画应用到图表中?

而且不仅在发生数据更改时?

谢谢!

laa*_*sto 16

更新的答案

Google已更新图表选项,并添加了在第一次绘制图表时为其设置动画的选项.

所以你唯一需要做的就是在这样的选项中进行psecify:

var options = {
            animation: {
                duration: 1500,
                startup: true //This is the new option
            }
        };
Run Code Online (Sandbox Code Playgroud)

因此,您不必在开始时加载空图表或进行任何其他黑客攻击.

DEMO

  • 最好的答案,比接受的更好! (2认同)

Guy*_*Guy 8

图表应该被渲染,然后才能应用你的动画,其显示的过渡,从一个状态到另一个状态.您可以更改数据或更改图表选项以创建过渡及其动画.

为了能够在第一时间显示动画,您只需创建一个空(无数据)图表,然后将数据添加到图表中,以显示数据动画.

var options = {
  animation:{
    duration: 1000,
    easing: 'out',
  }
};
var data = new google.visualization.DataTable();
data.addColumn('string', 'N');
data.addColumn('number', 'Value');
var chart = new google.visualization.ColumnChart...
chart.draw(data, options);
// Adding data
data.addRow(['V', 200]);
Run Code Online (Sandbox Code Playgroud)

  • 似乎不起作用,您是否必须在添加数据后重绘? (2认同)

s0v*_*vet 8

试试这样的http://jsfiddle.net/h7mSQ/163/.执行此操作的方法是使用零值呈现图表,然后根据需要设置值并再次绘制图表.不要忘记为(在此示例中)垂直轴设置最小值和最大值.

function drawChart() {
  var option = {title:"Yearly Coffee Consumption in our company",
               width:600, height:400,
               animation: {duration: 1000, easing: 'out',},
               vAxis: {title: "Cups of coffee", minValue:0, maxValue:500},
               hAxis: {title: "Year"}};
  var data = new google.visualization.DataTable();    
  data.addColumn('string', 'N');
  data.addColumn('number', 'Value');
  data.addRow(['2003', 0]);
  data.addRow(['2004', 0]);
  data.addRow(['2005', 0]);
  // Create and draw the visualization.
  var chart = new google.visualization.ColumnChart(document.getElementById('chart'));
  chart.draw(data, option);
  data.setValue(0, 1, 400);
  data.setValue(1, 1, 300);
  data.setValue(2, 1, 400);
  chart.draw(data, option);

}

google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
Run Code Online (Sandbox Code Playgroud)