具有注释和多个图形线的LineChart

use*_*515 0 google-visualization

我正在使用Google Charts尝试创建一个与第一个标记为示例的折线图:

https://developers.google.com/chart/interactive/docs/gallery/linechart

但是,我不能使用google.visualization.arrayToDataTable(),如第一个示例所示.

问题是我想为每个绘制点添加注释和annotationText.文档说我必须使用:

google.visualization.DataTable()

为此,我必须做到以下几点:

    var data1 = [
      [ 'C'   ,4, 'o', 'note'],
      [ 'D'   ,6, 'o', 'note'],
      [ 'O'   ,4, 'o', 'note']
    ];
    var chartData = new google.visualization.DataTable();

    chartData.addColumn('string', 'X'); // Implicit series 1 data col.
    chartData.addColumn('number', 'DOGS'); // Implicit domain label col.
    chartData.addColumn({type:'string', role:'annotation'});
    chartData.addColumn({type:'string', role:'annotationText'});  

    chartData.addRows(data1);
    var chart = new    
          google.visualization.LineChart(document.getElementById('visualization'));

    var options = {
             title: "My Title",                            
    };
    chart.draw(chartData,options);
Run Code Online (Sandbox Code Playgroud)

这给了我一行绘图数据.

我如何调整这个以允许我添加第二行绘图数据?goo

Ant*_*vić 5

您必须添加其他列并展开数据.例如:

    chartData.addColumn('string', 'X'); // Implicit series 1 data col.
    chartData.addColumn('number', 'DOGS'); // Implicit domain label col.
    chartData.addColumn({type:'string', role:'annotation'});
    chartData.addColumn({type:'string', role:'annotationText'});  
    chartData.addColumn('number', 'CATS'); // Implicit domain label col.
    chartData.addColumn({type:'string', role:'annotation'});
    chartData.addColumn({type:'string', role:'annotationText'});  

    var data1 = [
        [ 'C', 4, 'Dog1', 'Dog1 note',  7, 'Cat1', 'Cat1 note'],
        [ 'D', 6, 'Dog2', 'Dog2 note', 11, 'Cat2', 'Cat3 note'],
        [ 'O', 4, 'Dog3', 'Dog3 note', 13, 'Cat3', 'Cat3 note']
    ];

    chartData.addColumn('string', 'X'); // Implicit series 1 data col.
    chartData.addColumn('number', 'DOGS'); // Implicit domain label col.
    chartData.addColumn({type:'string', role:'annotation'});
    chartData.addColumn({type:'string', role:'annotationText'});  
    chartData.addColumn('number', 'CATS'); // Implicit domain label col.
    chartData.addColumn({type:'string', role:'annotation'});
    chartData.addColumn({type:'string', role:'annotationText'});  

    var data1 = [
        [ 'C', 4, 'Dog1', 'Dog1 note',  7, 'Cat1', 'Cat1 note'],
        [ 'D', 6, 'Dog2', 'Dog2 note', 11, 'Cat2', 'Cat3 note'],
        [ 'O', 4, 'Dog3', 'Dog3 note', 13, 'Cat3', 'Cat3 note']
    ];

    chartData.addRows(data1);
Run Code Online (Sandbox Code Playgroud)

请参阅jsBin上的示例