Unterstützt Chartjs 2 die radiale Verschiebung (Versatz) von Tortensegmenten?Chartjs Tortendiagramm, radiale Verschiebung (Offset)
1
A
Antwort
1
Chart.js allein hat keine Möglichkeit, ein Stück wie diese zu schneiden. Aber du kannst immer define your own chart type!
Hierunter unterglieder ich die pie
Karte in einen cutOutPie
Typ. Die Diagrammklasse konfiguriert die "Kuchenscheiben" mit der Funktion updateElement
, also überschreibe ich sie und verschiebe die Position der Elemente. Details finden Sie unter reading the source.
Chart.defaults.cutOutPie = Chart.helpers.clone(Chart.defaults.pie);
Chart.controllers.cutOutPie = Chart.controllers.pie.extend({
updateElement: function(arc, index, reset) {
Chart.controllers.pie.prototype.updateElement.call(this, arc, index, reset);
var displacement = this.getDataset().displacements[index]||0;
var model = arc._model;
var angle = model.startAngle + model.circumference/2;
model.x += Math.cos(angle) * displacement;
model.y += Math.sin(angle) * displacement;
}
});
new Chart('chart', {
type: 'cutOutPie',
data: {
labels: ['a', 'b', 'c', 'd', 'e', 'f'],
datasets: [{
data: [1, 7, 2, 8, 3, 9],
backgroundColor: ['red', 'orange', 'green', 'gold', 'pink', 'blue'],
displacements: [0, 0, 40, 0, 0, 16],
}],
},
});
<script src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<canvas id="chart" width="400" height="300"></canvas>
Verwandte Themen
- 1. Mein Tortendiagramm (chartJs) erscheint nicht
- 2. Sprunganweisung Offset oder Verschiebung?
- 3. Chartjs Tortendiagramm nicht von dynamischen Daten
- 4. OpenLayers Tortendiagramm
- 5. Radiale Farbverlauf Hintergrund nicht ordnungsgemäß
- 6. FabricJs - Radiale Steigung für Tortenstücke
- 7. wie Tortendiagramm in R
- 8. Chart.js Tortendiagramm übergelaufen div
- 9. Google Charts: Tortendiagramm Titelposition
- 10. Text im Tortendiagramm anzeigen
- 11. ChartJS Datenüberlaufdiagrammbereich
- 12. ChartJS Echtzeitanimation
- 13. UIScrollView Verschiebung
- 14. x86/x64 Hinzufügen Verschiebung Adressierung
- 15. WPF Radiale Progressbar/Meter (d. H. Batteriemessgerät)
- 16. Android radiale Gradienten vor API 21
- 17. Problem mit Tortendiagramm matplotlib - startangle/len()
- 18. Mehrere Legende zu Matplotlib Tortendiagramm?
- 19. D3.js Tortendiagramm animieren Gegenrichtung
- 20. Google Tortendiagramm mit js Variable
- 21. matplotlib prozentuale Labelposition im Tortendiagramm
- 22. Wie in Tortendiagramm von ggplot2
- 23. Tortendiagramm Etiketten mit angular-nvd3
- 24. GNUPLOT - Zuweisen von Farben in Tortendiagramm
- 25. ng2-charts Zugriff chartjs Objekt chartjs Funktionen anwenden
- 26. Stack-Sammlung fehlt Verschiebung und Verschiebung in C# 2.0
- 27. Offset
- 28. Mit Emacs einrücken (Verschiebung 4) Code
- 29. Chartjs Balkendiagramm ohne Grenzen
- 30. Leinwand statische Höhe Chartjs
Dank! Ich habe tatsächlich mit dem Javascript herumgespielt, es ist glücklicherweise einfach herauszufinden, wo ich hacken kann. Aber danke, dass du ein perfektes Beispiel gegeben hast, wie es sauber gemacht wird! – joakimk
Es funktioniert gut, bis auf eine Sache: Versetzte Tortensegmente fallen außerhalb des Diagrammbereichs, daher werden sie abgeschnitten. Entweder muss der Bereich erweitert werden, um Platz zu schaffen (bei der größten gegebenen Verschiebung), oder der Radius des Kuchens muss ähnlich reduziert werden. Ich nehme an, entweder wird das gleiche Ergebnis, visuell? Ich habe versucht, 'this.chart.outerRadius' usw. innerhalb Ihres' updateElement' zu reduzieren, aber nichts ändert sich. – joakimk
Sie könnten ['Chart.defaults.global.layout = {padding: 100}'] (http://www.chartjs.org/docs/#chart-configuration-layout-configuration) als schnelle Abhilfe verwenden, aber das wird die Größe des gesamten Diagramms reduzieren. – kennytm