8
votes

Mise à jour de la série HighcharTs avec animation

Je peux mettre à jour la valeur de données d'un graphique d'araignée et le voir animé à l'aide de cette méthode: xxx

mais, comme la série d'une carte d'araignée consiste non seulement à des données < / code> mais aussi d'autres champs, comme dans xxx

avec les données, lorsque je dois modifier la valeur Nom: "Dépenses réelles" < / Code>, comment puis-je mettre à jour la série avec animation?

car, par exemple si j'appelle: xxx

y a gagné " T être une animation.

S'il n'est toujours pas clair ... Eh bien, parfois un Jsfiddle vaut 100 mots.


5 commentaires

Hey @josh. Définissez des données redessinées par défaut. API.HIGHARCHARTS.COM/HIGHERTOCK#SERIES.SETDATA


Je peux définir les données, aucun problème avec cela. Mais comment puis-je changer les autres champs? 'SetName' en soi?


Je ne sais pas quel genre d'animation attendez-vous lors de la mise à jour du nom de la série? Voir Démo: jsfiddle.net/j522sdbk


@ Pawełfus comme dans: jsfiddle.net/skoretorkun/my8646oc


@ Pawełfus ah maintenant j'ai compris ce que tu veux dire .. Aucune attente d'animation du changement de valeur "Nom" du cours. Je veux juste pouvoir mettre à jour les données et le nom avec une animation sur le changement de données.


3 Réponses :


9
votes

Mettez à jour le nom , puis définissez les données avec l'animation souhaitée: xxx

Voir Fiddle de travail.


0 commentaires

7
votes

Étant donné que la bonne réponse n'a pas fonctionné pour moi avec plusieurs séries, je devais le faire plus similaire à celui-ci:

Mise à jour d'abord les noms car c'est une opération plus rapide sans animation. P>

// Pass false to skip redraw (since there are multiple operations, for better performance)
chart.series[0].update({name:'new title 0'}, false);
chart.series[1].update({name:'new title 1'}, false);
chart.series[2].update({name:'new title 2'}, false);
chart.series[3].update({name:'new title 3'}, false);

// Redraw the name changes before updating the data.
chart.redraw();

// Update the series data with animation, passing false to redraw here as well.
chart.series[0].setData(newData, false);
chart.series[1].setData(newData1, false);
chart.series[2].setData(newData2, false);
chart.series[3].setData(newData3, false);

// Now we redraw the series data
chart.redraw();


0 commentaires

1
votes

J'ai trouvé une meilleure solution xxx

le troisième argument est la clé:

mise à jour (options [ redessinées] [ onetoone] [ animation])


3 commentaires

J'ai vu cette réponse à plusieurs endroits maintenant, mais la documentation Highcharts n'apparaît pas ces arguments. Est-ce que je manque quelque chose? API.HIGHARCHARTS.COM/CLASS-REFERENCED/HIGHARTSERIES#UM >


Vous vérifiez la classe de mise à jour pour la série. Ceci est pour l'ensemble du tableau: API.HIGHARCHARTS.COM/CLASS-REFERATION /HIGHARTS .Chart # mise à jour


Ah merci Tiago, j'avais beaucoup d'insectes essayais de mettre à jour plusieurs choses, donc à la fin, je fais toutes mes mises à jour telles que série.setdata (données, false); , graph.xaxis [ 0] .update ({// Stuff}, False); et enfin graphique.redraw ({Durée: // millisecondes});