J'ai récemment commencé à apprendre à utiliser le framework D3.js et, bien qu'il semble avoir été conçu pour faire exactement ce que je veux, je ne trouve pas un exemple simple de graphique de mise à jour "en direct".
Je cherche quelque chose comme un graphique en courbes qui se met à jour au fur et à mesure que de nouvelles données deviennent disponibles. Les nouvelles données seraient obtenues en frappant une URL JSON avec un horodatage "vu en dernier" ou une autre méthode AJAX-y.
edit: La partie D3 de la réponse est la suivante:
http://bost.ocks.org/mike/path/
Maintenant, comment recommande-t-on de transférer les nouvelles données du serveur au client?
Ce tutoriel peut vous aider beaucoup à créer un graphe linéaire en temps réel: http://bost.ocks.org/mike/path/
J'aimerais ajouter quelques commentaires supplémentaires:
Données asynchrones
Lorsque vous faites un graphique en temps réel, vous obtenez souvent les données de manière asynchrone, vous ne pouvez donc pas connaître le temps exact entre chaque "point".
line
décrit dans le tutoriel ne s’inquiète pas de cela.Axe Y
Sur un graphique linéaire classique, il est facile de déterminer le domaine y. Cependant, avec les données en direct, la valeur y peut souvent sortir de la limite. C'est pourquoi je recommanderais d'appeler une fonction pour définir le domaine y à chaque itération. Vous pouvez également créer un cadre de sélection.
Performance
Comme les données sont toujours ajoutées, vous voudrez peut-être être très attentif au fait que vous DEVEZ supprimer les valeurs que vous n'utilisez plus, sinon vos données continueront à devenir plus lourdes et toute l'animation risquerait de se bloquer.
Peut-être que ce plugin peut aussi être intéressant: Cubisme.
Cubism.js est un plugin D3 permettant de visualiser des séries chronologiques. Utilisez le cubisme pour construire de meilleurs tableaux de bord en temps réel, en extrayant des données de Graphite, Cube et d’autres sources. Le cubisme est disponible sous licence Apache sur GitHub.
modifier:
Un autre projet intéressant peut être Rickshaw, qui exploite également D3.
Boîte à outils JavaScript pour la création de graphiques interactifs en temps réel
Voir cet exemple: données aléatoires dans le futur
Ce ne sont que deux exemples:
Le choix de l’une ou l’autre dépend de nombreuses variables: combien de connexions attendez-vous, quel est le taux de mise à jour des données, quels navigateurs vous envisagez de prendre en charge, etc.
Dans tous les cas, la bibliothèque d3.js n’est pas impliquée dans comment vous obtenez les données, mais dans comment vous les affichez .