Je voudrais demander s'il est possible d'utiliser Chart.js afficher les valeurs des données? Je veux imprimer le graphique.
Merci pour tout conseil.
javascript
chart.js
FuSsA
la source
la source
Réponses:
Modification tardive: il existe un plugin officiel pour Chart.js
2.7.0+
pour ce faire: https://github.com/chartjs/chartjs-plugin-datalabelsRéponse originale:
Vous pouvez parcourir les points / barres surAnimationComplete et afficher les valeurs
Aperçu
HTML
Scénario
Violon - http://jsfiddle.net/uh9vw0ao/
la source
onComplete
rappel ici, mais il se déclenche également lorsque le survol de la souris est sur la barre du graphique, provoquant le clignotement du nombre en raison du redessineronAnimationComplete
. Je ne peux pas utiliser ce rappel avec mon code de graphique existant (voirvar chartBar
en bas pastebin.com/tT7yTkGh )Voici une version mise à jour pour Chart.js 2.3
23 septembre 2016: J'ai modifié mon code pour qu'il fonctionne avec la v2.3 pour le type ligne / barre.
Important: même si vous n'avez pas besoin de l'animation, ne modifiez pas l'option de durée sur 0, sinon vous obtiendrez une erreur chartInstance.controller is undefined .
la source
Cette option d'animation fonctionne pour 2.1.3 sur un graphique à barres.
Réponse @Ross légèrement modifiée
la source
hover: {animationDuration: 0}
pour arrêter l'animation des étiquettes en survol.filter(dataset => !dataset._meta[0].hidden)
Je pense que la meilleure option pour faire cela dans chartJS v2.x consiste à utiliser un plugin, vous n'avez donc pas un gros bloc de code dans les options. De plus, il empêche les données de disparaître lors du survol d'une barre.
C'est-à-dire utiliser simplement ce code, qui enregistre un plugin qui ajoute le texte une fois le graphique dessiné.
la source
Chart.defaults.global.tooltips.enabled = false;
. Le problème avec cette solution est que laafterDraw
fonction est appelée des centaines de fois, générant probablement une surcharge du processeur. Pourtant, c'est la seule réponse pour l'instant sans cligner des yeux. Si vous avez besoin d'un meilleur rendu pour leshorizontalBar
graphiques, utilisezctx.textAlign = 'left'; ctx.textBaseline = 'middle';
etctx.fillText(dataset.data[i], model.x+5, model.y);
.Sur la base de la réponse de @ Ross pour Chart.js 2.0 et plus, j'ai dû inclure un petit ajustement pour me prémunir contre le cas lorsque les hauteurs de la barre sont trop choisies pour la limite de l'échelle.
L'
animation
attribut de l'option du graphique à barres:la source
ctx.save()
à la fin mais cela n'a pas aidéonComplete
rappel est exécuté lorsque j'ai survolé la barre, ce qui fait que le redessiner et le texte semblent clignoter.Est-ce que ce serait la même chose aveconAnimationComplete
? Je ne peux pas utiliser leonAnimationComplete
rappel avec mon code existant (voirvar chartBar
en bas de pastebin. com / tT7yTkGhSi vous utilisez le plugin chartjs-plugin-datalabels, l'objet d'options de code suivant vous aidera
Assurez-vous d'importer
import 'chartjs-plugin-datalabels';
dans votre fichier dactylographié ou d'ajouter une référence à<script src="chartjs-plugin-datalabels.js"></script>
dans votre fichier javascript.la source
Suite à cette bonne réponse , j'utiliserais ces options pour un graphique à barres:
Celui-ci utilise toujours le système d'info-bulles et ses avantages (positionnement automatique, templating, ...) mais cachant les décorations (couleur de fond, caret, ...)
la source
this.datasets[0].points
lieu de.bars
. Je préfère cette solution car elle utilise le système d'info-bulles.onComplete
rappel d' animations, mais cela se déclenche même lorsque survolé les barres du graphique, ce qui fait que le texte se redessine et donne un effet de clignotement indésirable.J'ai également essayéafterDraw
et c'est tout de même. ne se produit pas dans le violon fourni par potatopeelings.Any Ideas plz?À partir d'exemples de chart.js (fichier Chart.js-2.4.0 / samples / data_labelling.html):
`` `` // Définir un plugin pour fournir des étiquettes de données
''
la source
Je recommanderais d'utiliser ce plugin: https://github.com/chartjs/chartjs-plugin-datalabels
Des étiquettes peuvent être ajoutées à vos graphiques simplement en important le plugin dans le fichier js, par exemple:
Et peut être affiné à l'aide de ces documents: https://chartjs-plugin-datalabels.netlify.com/options.html
la source
A légèrement modifié la réponse de @ ajhuddy. Uniquement pour les graphiques à barres . Ma version ajoute:
Inconvénient: lorsque vous survolez une barre qui a une valeur à l'intérieur, la valeur peut sembler un peu irrégulière. Je n'ai pas trouvé de solution pour désactiver les effets de survol. Il peut également avoir besoin d'être peaufiné en fonction de vos propres paramètres.
Configuration:
Aides:
la source
calculateTickRotation
, c'est dans la fonction Scale. Je vais l'analyser.D'après mon expérience, une fois que vous avez inclus le plugin chartjs-plugin-datalabels (assurez-vous de placer le
<script>
balise après la balise chart.js sur votre page), vos graphiques commencent à afficher des valeurs.Si vous choisissez ensuite, vous pouvez le personnaliser en fonction de vos besoins. La personnalisation est clairement documentée ici mais fondamentalement, le format est comme cet exemple hypothétique:
la source