Design Article

Comment mettre des données à l’échelle avec un calcul simple

Comment mettre des données à l’échelle avec un calcul simple

Je suis actuellement en train de construire un plugin pour WordPress. Ce plugin a pour but d’afficher un tag cloud basé sur une librarie JS (d3.js) qui permet un rendu différent et amélioré du tag cloud de base de WordPress. Des fois certaines contraintes nous obligent à travailler à l’echelle (plus grand ou plus petit) et donc de normaliser un set de données.

L’exemple par le tag cloud (nuage de mots-clés)

Pour un tag cloud le principe consiste à compter le nombre de fois qu’un mot apparaît dans le blog (Ce nombre peut-être de grandeur très variable, par exemple un mot peu apparaître 10 fois comme un autre pourrait apparaître 1000 fois). Ensuite il faut afficher la liste des mots les plus trouvés et les faire apparaître avec une taille de police en fonction de leur nombre d’apparition dans le blog.

Le problème : Pourquoi mettre à l’echelle

Une police est quelque chose qui ne peut pas être modulé dans de grands écarts. Une police de caractère à 1000px par exemple risque de poser un petit problème de design. Et de même un mot qui n’aurait pas une grande fréquence dans un blog ne pourra pas se voir affubler une police à 2px. Vous voyez le problème.

La solution : Comment mettre à l’echelle

La solution à ce problème est d’appliquer une normalisation à votre échelle de donnée. Le principe est de « mapper » chaque valeur à sa valeur à l’échelle. Voici le calcul/code à utiliser :

Résultat du array normalisé entre 12 et 32 :

Conlusion

Il s’agit donc de mapper chaque valeur pour obtenir un nombre entre le minimum et le maximum voulu. Personnellement j’utilise cette technique / formule pour travailler avec des libraries graphiques comme protovis ou d3.js. C’est assurément à garder dans sa boite à outil ! A noté que le code est ici en PHP mais ceci peu très bien se faire en n’importe quel autre language.

Comment charger des données via Ajax avec Highcharts

Comment charger des données via Ajax avec Highcharts

J’utilise de plus en plus Highcharts à mon travail et je l’apprécie de plus en plus. Voici un tutoriel qui va vous apprendre à utiliser Highcharts avec ajax. Je vais illustrer ce tutoriel avec un dataset plutôt d’actualité : le prix de l’essence mis en comparaison au prix du pétrole.

Que va t’on apprendre dans ce tutoriel sur Highcharts ?

  • Comment charger des données via AJAX dans Highcharts
  • Comment ajouter un 2ème axe Y à un graphique pour comparer des valeurs d’ordre différent.
  • Comment travailler les labels des axes X et Y
  • Comment insérer plusieurs séries de données dans un graph

Charger des données via AJAX dans Highcharts

Pour charger des données via AJAX dans Highcharts, il s’agit de construire un objet javascript contenant les options qui vont servir à générer le graph, il suffit donc de déclarer un objet et de lui attribuer les options de bases : 

Définition des variables

On créer la variable « chart » qui va servir à instancier le graphique plus tard.
On créer la array « colors » pour définir ses couleurs personnelles et ainsi overwriter les couleurs par défaut.
On créer l’objet « options » qui va contenir tous les paramètres définissant le graphique.

Définition des paramètres du graph

« options.chart » représente les paramètres généraux du graph. On va pouvoir renseigner le type, la taille, les margins, le container …
« options.credits » permet de supprimer le lien vers Highcharts en bas à droite
« options.colors » définit les couleurs à utiliser (couleur par défaut si non renseigné)
« options.title » permet de donner un titre au graphique
« options.tooltip » permet de formater l’affichage du tooltip (étiquette au passage de la souris)

Créer 2 axes Y dans Highcharts

Le but de créer de axe Y est de pouvoir comparer 2 valeurs d’ordre différent. Dans notre exemple, on va comparer le prix de l’essence en euro avec une valeur autour de 1€ et le prix de baryl de pétrole en $ autour de 50$. Vous voyez où je veux en venir ?

Je pense que la définition de l’objet parle d’elle même, en gros on créer un array contenant deux objets définissant chaque axe. La beauté de Highcharts réside dans le fait qu’elle va s’occuper de mettre à l’échelle les axes en fonction des valeurs fournis, donc rien à faire de ce côté là.

Mettre en place l’axe des X avec une rotation des labels

Encore une fois c’est assez parlant, vous pouvez jouer avec la valeur de rotation du label pour arriver au résultat souhaité.

Insérer plusieurs dataset dans un graphique

Cela se traduit par insérer plusieurs courbe dans notre graphique avec pour chaque courbe ses valeurs propres.

Ici nous créons donc un array de series, chaque element de cet array est un objet définissant le nom et le array qui recevra les données via ajax.

Préparation du fichier HTML qui va recevoir le graphique

Chargement des données dans Highchart

Pour charger les données en ajax, j’utilise ici la methode get de Jquery pour aller lire le fichier de donnees JSON. Il suffit ensuite de manipuler les données dans votre fonction de callback pour aller nourrir les array de data de chacune de vos series. On en profite pour créer les categories (les labels) qui apparaîtrons sur l’axe des X.

Le resultat

Conclusion

J’espère que vous aurez pris plaisir à suivre ce tutoriel. Highcharts permet de customiser vos graphiques en javascript de manière simple, efficace et rapide. Comme vous le voyez, faire ce graphique n’est pas une tâche ultra complexe et pourtant le résultat obtenu est vraiment interessant.

Ressources :

Rendre les données humaines

De nos jours nous sommes entourés, submergés de données. Que ce soit les médias, les réseaux sociaux, les blogs ou que sais-je encore nous sommes en permanence soumis à des données plus ou moins compréhensible.

Il est presque impossible de pouvoir lire, comprendre et analyser ces données de façon manuelle lorsqu’elle sont en trop grande quantité. C’est là qu’intervient le « data visualization ».

De plus en plus je m’interesse à la visualisation de ces donneés et un collègue m’a partagé cette vidéo (tiré de TedX Vancouver) que j’ai trouvé vraiment interessante. La personne qui fait la conférence est Jer Thorp un designer assez puissant dans ses idées et ses réalisations. Le gars a tout même un beau portfolio puisqu’il a travaillé pour The New York Times, The Guardian, Scientific American, The New Yorker, and the CBC. 

Existence

Existence

Il s’agit d’un texte que j’ai retrouvé dans mes vieilles affaires d’école lors de mon retour en France. J’ai relu ce texte et j’ai trouvé qu’il méritait d’être partagé pour sa positivité. En fait c’est le message de voeux de bonne année que mon directeur d’école avait utilisé quand j’étais en 4ème. Quoi qu’il en soit, c’est un texte inspirant et agréable à lire. Par un auteur inconnu.

Existance

Prenez attention et tachez d’être heureux

Allez tranquillement parmis le vacarme et la hâte, et souvenez-vous de la paix qui peut exister dans le silence. Sans aliénation, vivez autant que possible en bons termes avec toutes personnes. Dîtes doucement et clairement votre vérité ; et écoutez les autres, même le simple d’esprit et l’ignorant : ils ont eux aussi leur histoire.

Évitez les individus bruyants et agressifs : ils sont une vexation pour l’esprit. Ne vous comparez à personne : vous risqueriez de devenir vain et vaniteux. Il y’a toujours plus grands et plus petits que vous.

Jouissez de vos projets aussi bien que de vos accomplissements. Soyez toujours intéressé par votre carrière, si modeste soit-elle : c’est une véritable possession dans les prospérités changeantes du temps. Soyez prudents dans vos affaires car le monde est plein de fourberies. Mais ne soyez pas aveugle en ce qui concerne la vertu qui existe : plusieurs individus recherchent les grands idéaux ; et parfois la vie est remplie d’héroïsme.

Soyez vous-même. N’affectez pas l’amitié. Non plus ne soyez cynique en amour car il est, en face de toute stérilité et de tout désenchantement, aussi éternel que l’herbe.

Prenez avec bonté le conseil des années, en renonçant avec grâce à votre jeunesse. Fortifiez une puissance d’esprit pour vous protéger en cas de malheur soudain. Mais ne vous chagrinez pas avec vos chimères. De nombreuses peurs naissent de la fatigue et de la solitude. Au-delà d’une discipline saine, soyez doux avec vous-même.

Vous êtes un enfant de l’univers, pas moins que les arbres et les étoiles : vous avez le droit d’être ici, et qu’il vous soit clair ou non, l’univers se déroule, sans doute, comme il le devrait.

Soyez en paix avec Dieu, quelle que soit votre conception de Lui et quelques soient vos travaux et vos rêves, gardez dans le désarroi bruyant de la vie, la paix dans votre âme. Avec toutes ses perfidies, ses besognes fastidieuses et ses rêves brisés, le monde est pourtant beau ; prenez attention. Tâchez d’être heureux.

(Auteur inconnu)
Trouvé dans une vieille église de Baltimore en 1692.

 

 

 


Une arme nommée Stuxnet

Voici une vidéo qui présente l’anatomie du virus Stuxnet, un virus considéré par plusieurs comme la première arme virtuelle uniquement formée de code. La vidéo est un peu flippante et alarmante mais chapeau bas à la réalisation (Patrick Clair, Scott Mitchell) qui est assez géniale il faut le dire.

(suite…)