2014-02-24 319 views
2

如果我畫線圖是沒有問題的,但我想這個對色階柱狀圖。(https://developers.google.com/chart/interactive/docs/gallery/histogram如何在Google圖表上繪製垂直線到直方圖?

對於線型圖;

var chart = new google.visualization.LineChart(document.querySelector('#chart_div')); 

對於直方圖;

var chart = new google.visualization.Histogram(document.querySelector('#chart_div')); 

其他代碼;

function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Name'); 
    data.addColumn({type: 'string', role: 'annotation'}); 
    data.addColumn('number', 'Value'); 

    data.addRows([ 
     ['Foo', null, 4], 
     ['Bar', null, 3], 
     ['Baz', null, 7], 
     ['Bat', null, 9], 
     ['Cad', 'Vertical line here', 9], 
     ['Qud', null, 2], 
     ['Piz', null, 6] 
    ]); 

    var chart = new google.visualization.Histogram(document.querySelector('#chart_div')); 
    chart.draw(data, { 
     height: 300, 
     width: 400, 
     annotation: { 
      // index here is the index of the DataTable column providing the annotation 
      1: { 
       style: 'line' 
      } 
     } 
    }); 
} 

回答

3

丹尼爾·拉利伯特回答我在谷歌網上論壇,誰是在谷歌的高級軟件工程師的問題..

https://groups.google.com/forum/#!msg/google-visualization-api/7y3LrKETEwY/fR4HoYwBu-EJ

所以它是不可能在谷歌圖表..

但:)谷歌圖表使用SVG ..對於exp。我想提請線30 x軸..

var newLine = document.createElementNS('http://www.w3.org/2000/svg', 'line'); 
newLine.setAttribute('id', 'lineId'); 
newLine.setAttribute('style', 'stroke:rgb(0,0,0); stroke-width:3;');   
newLine.setAttribute('x1', chart.getChartLayoutInterface().getXLocation(30)); 
newLine.setAttribute('y1', chart.getChartLayoutInterface().getChartAreaBoundingBox().top); 
newLine.setAttribute('x2', chart.getChartLayoutInterface().getXLocation(30)); 
newLine.setAttribute('y2', chart.getChartLayoutInterface().getChartAreaBoundingBox().height + chart.getChartLayoutInterface().getChartAreaBoundingBox().top); 
$("svg").append(newLine); 
+1

對於未來的用戶:這也可以用來製作動畫上線圖的「註釋」行 - 我找不到任何辦法讓谷歌圖爲註釋的變化位置設置動畫效果,但在上面代碼中繪製的線的X位置進行動畫處理非常簡單。感謝您的正確方向,dustqm! – roguenet