Gérer plusieurs highchart graphiques dans une seule page web
Je vais avoir plusieurs highchart graphiques de différents types(Bar,Tarte, de dispersion de type) dans une page web unique. Je suis actuellement la création d'objet de config pour chaque graphique comme,
{
chart : {},
blah blah,
}
Et de nourrir une fonction personnalisée qui va simplement appeler HighCharts.chart()
. Mais cela entraîne la duplication de code. Je veux gérer tout ce graphique de la logique rendu de manière centralisée.
Aucune Idée de comment faire cela?
- Quel est le problème exactement? Où est la duplication de code? Fournir votre code.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
jQuery.extend()
etHighcharts.setOptions
.Donc, vous allez d'abord faire le premier objet qui va être étendu par l'ensemble de vos graphiques, cet objet va contenir votre Highchart fonctions par défaut.
Vous pouvez le faire en utilisant namespacing.
La façon suivante est bon quand vous avez très différents graphiques.
Graphiques par défaut:
Maintenant, si vous voulez faire un graphique en colonnes, vous étendrez defaultChart
Si vous avez des graphiques semblables utilisation
Highcharts.setOptions
qui permet d'appliquer les options de tous créé des graphiques après ce.Référence
DÉMO COMPLÈTE
Highcharts.setOptions({...})
également faire quasiment la même chose? Je suis en général un grand fan de l'utilisationjQuery.extend
pour exactement le but de décrire, mais j'ai (avec une triste régularité) faire des erreurs qui subtilement écraser les valeurs par défaut, donc ma préférence est de s'appuyer sur la bibliothèque (avec beaucoup de globes oculaires et dans ce cas, $'s) pour qu'il soit droit. Je ne suis pas actuellement à l'aide de Highcharts, mais je suis à la recherche autour pour une meilleure js tracé de la bibliothèque, d'où la curiosité.Je sais que cela a déjà été posée, mais je pense qu'il peut être pris encore plus loin. Je suis toujours plutôt neuf, JavaScript et jQuery, donc si quelqu'un trouve quelque chose de mal, ou pense que cette approche des sauts de lignes directrices ou des règles de base d'une certaine sorte, je lui en serais reconnaissant pour le feedback.
Appuyant sur les principes décrits par Ricardo Lohmann, j'ai créé un plugin jQuery qui (à mon avis) permet Highcharts pour travailler plus facilement avec jQuery (c'est à dire la façon dont travaille jQuery avec d'autres objets HTML).
Je n'ai jamais aimé le fait que vous devez fournir un ID de l'objet à Highcharts avant attire le graphique. Donc, avec le plug-in, je peux affecter le graphique de la norme sélecteur jQuery objet, sans avoir à en donner les contenant
<div>
unid
valeur.Avec ce plug-in, je peux l'assigner à un tableau comme suit:
C'est un exemple simpliste, bien sûr; pour un exemple réel, vous devez créer plus complexe tableau-propriétés. Mais ce sont les principes qui nous préoccupent ici, et je trouve que cette approche répond à la question d'origine. Il ré-utilise le code, tout en permettant, pour chaque graphique des altérations de l'appliquer progressivement sur le dessus les uns des autres.
En principe, il vous permet également de regrouper plusieurs appels Ajax dans un, pousser les uns les options du graphique et les données dans un seul tableau JavaScript.
Obligatoire jFiddle exemple est ici: http://jsfiddle.net/3GYHg/1/
Les critiques sont les bienvenues!!
À ajouter à @Ricardo grande réponse, j'ai aussi fait quelque chose de très similaire. En fait, je ne serai pas de mal, si je l'ai dit, je suis allé une étape plus loin que cela. D'où tiens à partager la démarche.
J'ai créé un wrapper sur le highchart de la bibliothèque. Cela donne de multiples avantages, à la suite d'être les principaux avantages qui les encourage à aller dans cette voie
options
objet avec seulement 4-5 propriétés dont les valeurs par défaut ne conviennent pas au tableau sous la rubrique créationVoici ce que le
options
ressemble avec leurs valeurs par défautComme vous pouvez le voir, la plupart du temps, c'est juste
chartData
qui change. Même si vous devez configurer certains biens, de ses essentiellement de vrai/faux types, rien de tel que l'horreur que highchart constructeur attend (pas le critiquant eux, le montant des options qu'elles offrent n'est tout simplement incroyable de personnalisation de Point de Vue, mais pour tous les développeurs dans l'équipe pour comprendre & maître, il peut prendre un certain temps)Donc la création de graphique est aussi simple que