existe-t-il un moyen de transmettre des données supplémentaires à l'objet série qui sera utilisé pour s'afficher dans l'info-bulle du graphique?
par exemple
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
Highcharts.dateFormat('%b %e', this.x) +': '+ this.y;
}
ici, nous ne pouvons utiliser que series.name, this.x & this.y pour la série. disons que j'ai besoin de passer une autre valeur dynamique seule avec l'ensemble de données et que je peux accéder via un objet série. Est-ce possible?
Merci d'avance à tous.
series
objet et de les afficher dans ce gestionnaire?Réponses:
Oui, si vous configurez l'objet série comme suit, où chaque point de données est un hachage, vous pouvez transmettre des valeurs supplémentaires:
Dans votre tooltip vous pouvez y accéder via l'attribut "point" de l'objet passé:
Exemple complet ici: https://jsfiddle.net/burwelldesigns/jeoL5y7s/
la source
De plus, avec cette solution, vous pouvez même mettre plusieurs données autant que vous le souhaitez :
Merci Nick.
la source
datetime
valeur x mais souhaitons ajouter des données supplémentaires à l'info-bulle.Pour les données de séries chronologiques, en particulier avec suffisamment de points de données pour activer le seuil turbo , les solutions proposées ci-dessus ne fonctionneront pas. Dans le cas du seuil turbo, c'est parce que Highcarts s'attend à ce que les points de données soient un tableau comme:
Afin de ne pas perdre les avantages du seuil turbo (ce qui est important lorsqu'il s'agit de nombreux points de données), je stocke les données en dehors du graphique et je recherche le point de données dans la
formatter
fonction d' info-bulle . Voici un exemple:Cette approche fonctionnera pour tous les types de graphiques.
la source
data: _.map(data, row => [row['timestamp'], row['value']])
êtredata: chartData.map(row => [row.timestamp, row.value])
? De plus, vous n'avez pas besoin de lodash; vous pouvez utiliser Array.find . Il n'est pas pris en charge par IE, mais vous utilisez déjà ES6 (const
) et MS a cessé de prendre en charge IE en 2016 .chartData
. J'ai l'habitude d'utiliser lodash mais tu as raison. J'ai mis à jour mon exemple pour qu'il soit indépendant de la bibliothèque. THX.J'utilise AJAX pour obtenir mes données depuis SQL Server, puis je prépare un tableau js qui est utilisé comme données dans mon graphique. Code JavaScript une fois que l'AJAX est réussi:
Maintenant, pour afficher des méta-données supplémentaires dans l'info-bulle:
J'utilise un DataRow pour parcourir mon jeu de résultats, puis j'utilise une classe pour attribuer les valeurs avant de les renvoyer au format Json. Voici le code C # dans l'action du contrôleur appelée par Ajax.
Je me rends compte qu'il existe un moyen plus efficace et acceptable de coder en C #, mais j'ai hérité du projet.
la source
Juste pour ajouter une sorte de dynamisme:
Fait cela pour générer des données pour un histogramme empilé avec 10 catégories.
Je voulais avoir pour chaque série de données de catégorie 4 et je voulais afficher des informations supplémentaires (image, question, distracteur et réponse attendue) pour chacune des séries de données:
Dans la section highcharts:
J'espère que ça aide quelqu'un.
la source