How Draw Vertical Line to Histogram Graph on Google Charts?

╄→гoц情女王★ 提交于 2020-12-10 12:40:26

问题


If I draw line chart there is no problem but I want to this on histogram graph.. (https://developers.google.com/chart/interactive/docs/gallery/histogram)

For LineChart;

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

For Histogram;

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

Other Codes;

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'
            }
        }
    });
}

回答1:


Daniel LaLiberte answered my question on Google Groups, who is a Senior Software Engineer at Google..

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

So it is not possible on Google Charts..

But :) Google Charts uses SVG.. For exp. I want to draw line to 30 x axis..

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);


来源:https://stackoverflow.com/questions/21981689/how-draw-vertical-line-to-histogram-graph-on-google-charts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!