2016-05-03 15 views
1

Ich habe 2 Google-Balkendiagramme, eines gestapelt, eines nicht. Ich muss für jedes Segment in beiden Diagrammen eine Anmerkung hinzufügen. Wie kann ich das machen?Wie füge ich Anmerkungen zu einem segmentierten Google-Diagramm hinzu?

google.load('visualization', '1', { 
    'packages': ['corechart', 'table'] 
}); 
google.setOnLoadCallback(drawCharts); 

function drawCharts() { 
    drawSixMonthHistory(); 
    drawTagBreakdown(); 
}; 


function drawSixMonthHistory() { 
    var data = google.visualization.arrayToDataTable([ 
    ["Calendars", "Calendar A", "Calendar B", "Calendar C"], 
    ["Dec, 2015", 0, 0, 0], 
    ["Jan, 2016", 0, 0, 0], 
    ["Feb, 2016", 0, 0, 0], 
    ["Mar, 2016", 0, 0, 0], 
    ["Apr, 2016", 3, 0, 2], 
    ["May, 2016", 6, 2, 1] 
    ]); 
    var view = new google.visualization.DataView(data); 

    var chart = new google.visualization.ColumnChart(document.getElementById('sixMonthHistory')); 
    chart.draw(view, { 
    fontName: 'Roboto', 
    enableInteractivity: false, 
    backgroundColor: 'transparent', 
    annotations: { 
     alwaysOutside: true 
    }, 
    chartArea: { 
     width: '90%' 
    }, 
    vAxis: { 
     viewWindowMode: 'explicit', 
     format: '##0', 
     viewWindow: { 
     min: 0 
     } 
    }, 
    legend: { 
     position: 'bottom', 
     maxLines: 3 
    }, 
    isStacked: true 
    }); 
} 

function drawTagBreakdown() { 
    var data = google.visualization.arrayToDataTable([ 
    ["tags", "Tag A", "Tag B", "Tag C"], 
    ["Dec, 2015", 0, 0, 0], 
    ["Jan, 2016", 0, 0, 0], 
    ["Feb, 2016", 0, 0, 0], 
    ["Mar, 2016", 0, 0, 0], 
    ["Apr, 2016", 3, 1, 3], 
    ["May, 2016", 2, 1, 5] 
    ]); 
    var view = new google.visualization.DataView(data); 

    var chart = new google.visualization.ColumnChart(document.getElementById('sixMonthTagHistory')); 
    chart.draw(view, { 
    fontName: 'Roboto', 
    enableInteractivity: false, 
    backgroundColor: 'transparent', 
    annotations: { 
     alwaysOutside: true 
    }, 
    chartArea: { 
     width: '90%' 
    }, 
    vAxis: { 
     viewWindowMode: 'explicit', 
     format: '##0', 
     viewWindow: { 
     min: 0 
     } 
    }, 
    legend: { 
     position: 'bottom', 
     maxLines: 3 
    } 
    }); 
} 

jsfiddle

Antwort

0

können Sie view.setColumnsannotation columns für jeden Wert hinzufügen verwenden

folgenden Beispiel sehen ...

google.charts.load('current', {packages: ['corechart', 'table']}); 
 
google.charts.setOnLoadCallback(drawCharts); 
 

 
function drawCharts() { 
 
    drawSixMonthHistory(); 
 
    drawTagBreakdown(); 
 
}; 
 

 
function drawSixMonthHistory() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
    ["Calendars", "Calendar A", "Calendar B", "Calendar C"], 
 
    ["Dec, 2015", 0, 0, 0], 
 
    ["Jan, 2016", 0, 0, 0], 
 
    ["Feb, 2016", 0, 0, 0], 
 
    ["Mar, 2016", 0, 0, 0], 
 
    ["Apr, 2016", 3, 0, 2], 
 
    ["May, 2016", 6, 2, 1] 
 
    ]); 
 
    var view = new google.visualization.DataView(data); 
 
    view.setColumns([0, 1, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 1, 
 
     type: "string", 
 
     role: "annotation" 
 
    }, 
 
    2, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 2, 
 
     type: "string", 
 
     role: "annotation" 
 
    }, 
 
    3, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 3, 
 
     type: "string", 
 
     role: "annotation" 
 
    } 
 
    ]); 
 

 
    var chart = new google.visualization.ColumnChart(document.getElementById('sixMonthHistory')); 
 
    chart.draw(view, { 
 
    fontName: 'Roboto', 
 
    enableInteractivity: false, 
 
    backgroundColor: 'transparent', 
 
    annotations: { 
 
     //alwaysOutside: true 
 
    }, 
 
    chartArea: { 
 
     width: '90%' 
 
    }, 
 
    vAxis: { 
 
     viewWindowMode: 'explicit', 
 
     format: '##0', 
 
     viewWindow: { 
 
     min: 0 
 
     } 
 
    }, 
 
    legend: { 
 
     position: 'bottom', 
 
     maxLines: 3 
 
    }, 
 
    isStacked: true 
 
    }); 
 
} 
 

 
function drawTagBreakdown() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
    ["tags", "Tag A", "Tag B", "Tag C"], 
 
    ["Dec, 2015", 0, 0, 0], 
 
    ["Jan, 2016", 0, 0, 0], 
 
    ["Feb, 2016", 0, 0, 0], 
 
    ["Mar, 2016", 0, 0, 0], 
 
    ["Apr, 2016", 3, 1, 3], 
 
    ["May, 2016", 2, 1, 5] 
 
    ]); 
 
    var view = new google.visualization.DataView(data); 
 
    view.setColumns([0, 1, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 1, 
 
     type: "string", 
 
     role: "annotation" 
 
    }, 
 
    2, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 2, 
 
     type: "string", 
 
     role: "annotation" 
 
    }, 
 
    3, 
 
    { 
 
     calc: "stringify", 
 
     sourceColumn: 3, 
 
     type: "string", 
 
     role: "annotation" 
 
    } 
 
    ]); 
 

 
    var chart = new google.visualization.ColumnChart(document.getElementById('sixMonthTagHistory')); 
 
    chart.draw(view, { 
 
    fontName: 'Roboto', 
 
    enableInteractivity: false, 
 
    backgroundColor: 'transparent', 
 
    annotations: { 
 
     alwaysOutside: true 
 
    }, 
 
    chartArea: { 
 
     width: '90%' 
 
    }, 
 
    vAxis: { 
 
     viewWindowMode: 'explicit', 
 
     format: '##0', 
 
     viewWindow: { 
 
     min: 0 
 
     } 
 
    }, 
 
    legend: { 
 
     position: 'bottom', 
 
     maxLines: 3 
 
    } 
 
    }); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="sixMonthHistory"></div> 
 
<div id="sixMonthTagHistory"></div>

auch, empfiehlt es sich loader.js anstelle der älteren Bibliothek zu verwenden jsapi
sehen Load the Libraries

+0

hoffe, das hilft, Sie eine benutzerdefinierte Funktion verwenden vs. 'stringify' auszuschließen Anmerkungen für Null Beträge können wollen - vielleicht anpassen' Anmerkungen: {alwaysOutside: true} 'ebenfalls – WhiteHat

Verwandte Themen