Ich möchte fragen, ob es mit Chart.js möglich ist Datenwerte anzeigen? Ich möchte das Diagramm drucken.
Vielen Dank für jeden Rat.
javascript
chart.js
FuSsA
quelle
quelle
Antworten:
Späte Bearbeitung: Hierfür gibt es ein offizielles Plugin für Chart.js
2.7.0+
: https://github.com/chartjs/chartjs-plugin-datalabelsUrsprüngliche Antwort:
Sie können die Punkte / Balken auf AnimationComplete durchlaufen und die Werte anzeigen
Vorschau
HTML
Skript
Geige - http://jsfiddle.net/uh9vw0ao/
quelle
onComplete
Rückruf hier verwendet, aber er wird auch ausgelöst, wenn sich das Mouseover in den Balken des Diagramms befindet und die Nummer aufgrund von Redraw blinkt. Wäre das dasselbe, wennonAnimationComplete
? Ich kann diesen Rückruf nicht mit meinem vorhandenen Diagrammcode verwenden (siehevar chartBar
unten pastebin.com/tT7yTkGh )Hier ist eine aktualisierte Version für Chart.js 2.3
23. September 2016: Mein Code wurde so bearbeitet, dass er mit v2.3 für beide Zeilen- / Balkentypen funktioniert.
Wichtig: Auch wenn Sie die Animation nicht benötigen, ändern Sie die Dauer-Option nicht auf 0, da sonst der Fehler chartInstance.controller angezeigt wird .
quelle
Diese Animationsoption funktioniert für 2.1.3 in einem Balkendiagramm.
Leicht modifizierte @ Ross-Antwort
quelle
hover: {animationDuration: 0}
, um zu verhindern, dass die Labels beim Schweben animiert werden.filter(dataset => !dataset._meta[0].hidden)
Ich denke, die schönste Option, dies in chartJS v2.x zu tun, ist die Verwendung eines Plugins, sodass Sie keinen großen Codeblock in den Optionen haben. Außerdem wird verhindert, dass die Daten verschwinden, wenn Sie mit der Maus über einen Balken fahren.
Verwenden Sie einfach diesen Code, der ein Plugin registriert, das den Text nach dem Zeichnen des Diagramms hinzufügt.
quelle
Chart.defaults.global.tooltips.enabled = false;
. Das Problem bei dieser Lösung ist, dass dieafterDraw
Funktion hunderte Male aufgerufen wird, was wahrscheinlich zu einem CPU-Overhead führt. Trotzdem ist es die einzige Antwort ohne zu blinken. Wenn Sie ein besseres Rendering fürhorizontalBar
Diagramme benötigen , verwenden Siectx.textAlign = 'left'; ctx.textBaseline = 'middle';
undctx.fillText(dataset.data[i], model.x+5, model.y);
.Basierend auf der Antwort von @ Ross auf Chart.js 2.0 und höher musste ich eine kleine Änderung vornehmen, um mich vor dem Fall zu schützen, wenn die Balkenhöhen zu stark an die Skalengrenze angepasst sind.
Das
animation
Attribut der Option des Balkendiagramms:quelle
ctx.save()
am EndeonComplete
Rückruf wird ausgeführt, wenn ich mit der Maus über die Leiste gefahrenonAnimationComplete
bin, wodurch das Neuzeichnen und der Text zu blinken scheinen. Wäre dies auch so? Ich kann denonAnimationComplete
Rückruf nicht mit meinem vorhandenen Code verwenden (siehevar chartBar
unten im Pastebin). com / tT7yTkGhWenn Sie das Plugin chartjs-plugin-datalabels verwenden, hilft das folgende Codeoptionsobjekt
Stellen Sie sicher, dass Sie
import 'chartjs-plugin-datalabels';
in Ihre Typoskriptdatei importieren oder einen Verweis auf<script src="chartjs-plugin-datalabels.js"></script>
in Ihre Javascriptdatei hinzufügen .quelle
Nach dieser guten Antwort würde ich diese Optionen für ein Balkendiagramm verwenden:
Dies nutzt weiterhin das Tooltip-System und seine Vorteile (automatische Positionierung, Vorlage, ...), verbirgt jedoch die Dekorationen (Hintergrundfarbe, Caret, ...).
quelle
this.datasets[0].points
anstelle von.bars
. Ich bevorzuge diese Lösung, weil sie das Tooltip-System verwendet.onComplete
Rückruf verwendet, aber sie werden ausgelöst, selbst wenn sie über den Balken des Diagramms schweben, wodurch der Text neu gezeichnet wird und einen unerwünschten Blinkeffekt erzeugt. Ich habe es auch versuchtafterDraw
und es ist alles gleich. Seltsamerweise passiert nicht in Geige von Potatopeelings.Any Ideas plz?Aus den Beispielen von chart.js (Datei Chart.js-2.4.0 / samples / data_labelling.html):
`` `// Definiere ein Plugin, um Datenbeschriftungen bereitzustellen
`` `
quelle
Ich würde empfehlen, dieses Plugin zu verwenden: https://github.com/chartjs/chartjs-plugin-datalabels
Beschriftungen können einfach durch Importieren des Plugins in die js-Datei zu Ihren Diagrammen hinzugefügt werden, z.
Und kann mithilfe der folgenden Dokumente verfeinert werden: https://chartjs-plugin-datalabels.netlify.com/options.html
quelle
@ Ajhuddys Antwort ein wenig bearbeitet. Nur für Balkendiagramme . Meine Version fügt hinzu:
Nachteil: Wenn Sie mit der Maus über einen Balken fahren, in dem sich ein Wert befindet, sieht der Wert möglicherweise etwas gezackt aus. Ich habe keine Lösung gefunden, um Hover-Effekte zu deaktivieren. Abhängig von Ihren eigenen Einstellungen muss möglicherweise auch eine Anpassung vorgenommen werden.
Aufbau:
Helfer:
quelle
calculateTickRotation
. Es befindet sich in der Skalierungsfunktion. Ich werde es analysieren.Nach meiner Erfahrung sollten Sie das Plugin chartjs-plugin-datalabels einfügen (stellen Sie sicher, dass Sie das platzieren
<script>
Ihren Diagrammen Werte angezeigt Tag nach dem Tag chart.js auf Ihrer Seite platziert wird).Wenn Sie sich dann entscheiden, können Sie es an Ihre Bedürfnisse anpassen. Die Anpassung ist hier klar dokumentiert, aber im Grunde ist das Format wie in diesem hypothetischen Beispiel:
quelle