Ich habe die Lösung gefunden. Für Chart.js 2.1.x ab (es funktioniert nicht Chart.js 1.xx), können Sie den Datensatz mit benutzerdefinierten Option anwenden, wie unten gezeigt:
var options = {
scales:{
xAxes: [{ stacked: true }],
yAxes: [{ stacked: true }]
}
};
var myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
ich das Diagramm js 2.2 verwenden. 1 Edelstein von this source. Die Hilfsmethode aus Zeile 3-35 bietet einen Einblick in das Erstellen eines gestapelten Balkendiagramms. Irgendwie hat es nicht die Möglichkeit, die Daten von der gegebenen Methode einzugeben. Lassen Sie sich also die Hilfsmethode außer Kraft setzen:
def chart2_bar id=nil, size=nil, data={}, options={}
html = "<canvas id=\"myChart_bar\" width=\"#{size[:width]}px\" height=\"#{size[:height]}px\"></canvas>".html_safe
script = javascript_tag do
<<-END.html_safe
var ctx = document.getElementById("myChart_bar");
var data = "#{data.to_json}";
var options = "#{options.to_json}";
var myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
END
end
return html + script
end
Die Daten im JSON-Format sein muss oder sonst würde es als String-Format behandelt werden, und so Fehler. Sie können eine Instanzvariable erstellen und wie gewohnt an die Hilfsmethode übergeben.
Ich würde nicht sagen, das ist die perfekte Lösung, aber es funktioniert gut von der Generierung von HTML und auch PDF (mit breed-pdf).
http://www.chartjs.org/samples/latest/charts/bar/stacked.html – fanta
Danke. Weißt du, wie ich den Code für das Dataset ändern kann, damit es mit den Legenden auf der rechten Seite gestapelt werden kann? Es sieht so aus, als könnte es mithilfe von {stack: 1} im Dataset gruppiert werden. Ich kann den Code anlegen, wenn Sie mehr Informationen benötigen. – Yewness