Ceaveat Quanto segue è applicabile solo a d3 v3 e non all'ultimo d4v4!
Sono parziale a d3.js e, sebbene non sia un sostituto totale di Panda, se passi un po 'di tempo ad apprendere il suo paradigma, dovrebbe essere in grado di prendersi cura di tutti i tuoi dati discutendo per te. (E se finisci per voler visualizzare i risultati nel browser, è l'ideale per questo.)
Esempio. Il mio file CSV data.csv:
name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange
Nella stessa directory, crea un file index.htmlcontenente quanto segue:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>My D3 demo</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script charset="utf-8" src="demo.js"></script>
</body>
</html>
e anche un demo.jsfile contenente quanto segue:
d3.csv('/data.csv',
function(row) {
return {name : row.name, age : +row.age, color : row.color};
},
function(data) {
console.log(data);
var averageAge = data.reduce(function(prev, curr) {
return prev + curr.age;
}, 0) / data.length;
var ulSelection = d3.select('body').append('ul');
var valuesSelection =
ulSelection.selectAll('li').data(data).enter().append('li').text(
function(d) { return d.age; });
var totalSelection =
ulSelection.append('li').text('Average: ' + averageAge);
});
Nella directory, esegui python -m SimpleHTTPServer 8181e apri http: // localhost: 8181 nel tuo browser per vedere un semplice elenco delle età e della loro media.
Questo semplice esempio mostra alcune caratteristiche rilevanti di d3:
- Eccellente supporto per l'inserimento di dati online ( CSV , TSV, JSON, ecc.)
- Intelligenza di negoziazione dei dati integrata
- Manipolazione DOM basata sui dati (forse la cosa più difficile da capire): i tuoi dati vengono trasformati in elementi DOM.