J'ai expliqué un peu les techniques Python détaillées requises pour le formatage des données la semaine dernière, mais il y a d'autres points à garder à l'esprit.
Surtout lorsque vous essayez de visualiser des données avec D3.js comme hier, il est nécessaire de générer un ensemble de données JSON, mais vous devez bien comprendre le type de structure de données de l'ensemble de données. ne pas.
Ce serait bien si vous pouviez prendre une méthode telle que Language to compile and execute pour vérifier les erreurs sur l'EDI, corriger les bogues jusqu'à ce qu'il soit terminé, puis l'exécuter. Cependant, dans le cas de JavaScript, il a tendance à prendre du temps pour passer du message d'avertissement à la véritable cause, qui ne s'affiche pas comme prévu lors de l'exécution dans le navigateur. Je pense que c'est à cause de l'environnement d'exécution, du type et du format des données, ou d'une petite erreur dans le code, ou parce qu'il faut du temps pour isoler.
C'est pourquoi comprendre correctement le format de l'ensemble de données, écrire des tests unitaires pour garantir l'exactitude peut entraîner des gains de temps, et c'est sobre et fastidieux, mais il est très important de ne pas l'omettre. C'est une procédure.
Par exemple, envisagez de visualiser les données du journal de séries chronologiques. Le temps est une information sans cesse continue sans aucune interruption en premier lieu. Si vous souhaitez déplacer cela avec la barre de défilement et afficher le changement de données dû au passage du temps, modifiez le Niveau d'échelle et l'échelle d'intervalle. Une technique courante consiste à convertir en.
Supposons que vous souhaitiez afficher le nombre de clients pendant 4 jours du 22/07 au 25/07. Convertit la date et l'heure humaines avec heure UNIX pour garantir que l'échelle de distance est uniformément espacée. ..
Date et heure humaines | Heure UNIX |
---|---|
20140722 | 1404226800 |
20140723 | 1404313200 |
20140724 | 1404399600 |
20140725 | 1404486000 |
Afin de visualiser la transition quotidienne de cette manière, nous avons préparé une fonction pour convertir la date et l'heure humaines sur le côté gauche en heure UNIX. En Python, time.mktime renvoie l'heure UNIX sous forme de type à virgule flottante.
def to_unixtime(self, d):
# time.mktime(2014,07,22,0,0,0,0,0,0)Faire
return int(time.mktime((int(d[0:4]),int(d[5:6]),int(d[7:8]),0,0,0,0,0,0)))
Dans l'exemple ci-dessus, nous n'avons besoin que de trouver l'échelle de distance quotidienne, nous avons donc fixé 0 à la partie temps. Il vaudrait mieux l'améliorer un peu plus pour le cas du réglage de la distance en unités de 1 heure, 10 minutes, etc. Les lecteurs doivent réfléchir à ce qu'il faut faire.
De plus, dans le monde de JavaScript, il est courant de gérer le temps en unités de 1/1000 de seconde. N'oubliez pas de multiplier le nombre par 1000 lors de la conversion en JSON.
La conversion de l'horodatage UNIX en date et heure humaines est effectuée comme suit.
now = 1406255406992 / 1000
datetime.datetime.fromtimestamp(now)
#=> datetime.datetime(2014, 7, 25, 11, 30, 6, 992000)
Par exemple, considérez le format de données suivant. Type de dictionnaire imbriqué, généralement appelé tableau associatif.
{1404399600.0: {'a': 1, 'b': 2}, 1404486000.0: {'c': 3, 'd': 4}}
Si vous souhaitez l'afficher dans le graphique de zone empilée présenté Hier, vous pouvez utiliser le Code de l'unité principale. master / src / models / stackedAreaChart.js) peut traiter le format de données JSON comme un tableau multidimensionnel Je comprends. La conversion à partir d'un type de dictionnaire semble être gênante à première vue, mais elle peut être décrite de manière concise en utilisant la notation de contenu de liste de Python.
[[a*1000,b] for a,b in v.items()]
#=> [[1404399600000.0, {'a': 1, 'b': 2}], [1404486000000.0, {'c': 3, 'd': 4}]]
Dans le monde des mathématiques, tous les nombres réels, entiers, etc. sont interprétés comme des ensembles universels. C'est facile à comprendre si vous pensez à utiliser for pour faire référence aux éléments des données et obtenir une projection pour chacun. Vous pouvez voir que cela ressemble à la notation des mathématiques.
Dans Python 3, le comportement de la notation d'inclusion de liste a été amélioré en une expression de générateur, par exemple, la syntaxe suivante
[f(x) for x in S if P(x)]
Cela équivaut à appliquer la fonction list () à l'expression du générateur comme indiqué ci-dessous.
list(f(x) for x in S if P(x))
Aujourd'hui, j'ai présenté les techniques détaillées qui apparaissent souvent lors de la simple conversion de données.
Recommended Posts