Ceaveat Sau đây chỉ áp dụng cho d3 v3 và không phải là d4v4 mới nhất!
Tôi là một phần của d3.js và mặc dù nó sẽ không thay thế toàn bộ cho Pandas, nếu bạn dành chút thời gian để học mô hình của nó, nó sẽ có thể xử lý tất cả dữ liệu của bạn. (Và nếu bạn muốn hiển thị kết quả trong trình duyệt, điều đó lý tưởng cho điều đó.)
Ví dụ. tập tin CSV My data.csv
:
name,age,color
Mickey,65,black
Donald,58,white
Pluto,64,orange
Trong cùng một thư mục, tạo ra một index.html
chứa sau:
<!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>
và cũng là một tập tin demo.js
chứa sau:
d3.csv('/data.csv',
// How to format each row. Since the CSV file has a header, `row` will be
// an object with keys derived from the header.
function(row) {
return {name : row.name, age : +row.age, color : row.color};
},
// Callback to run once all data's loaded and ready.
function(data) {
// Log the data to the JavaScript console
console.log(data);
// Compute some interesting results
var averageAge = data.reduce(function(prev, curr) {
return prev + curr.age;
}, 0)/data.length;
// Also, display it
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);
});
Trong thư mục , chạy python -m SimpleHTTPServer 8181
và mở http://localhost:8181 trong trình duyệt của bạn để xem danh sách đơn giản về độ tuổi và mức độ trung bình của chúng .
ví dụ đơn giản này cho thấy một vài tính năng có liên quan của d3:
- hỗ trợ tuyệt vời cho nuốt dữ liệu trực tuyến (CSV, TSV, JSON, vv)
- khéo léo tranh cãi dữ liệu nướng trong
- đĩa dữ liệu điều khiển DOM điều khiển (có thể là điều khó khăn nhất để quấn quanh đầu): dữ liệu của bạn được chuyển đổi thành các phần tử DOM.
"Xử lý cột" hơi mơ hồ, bạn có nghĩ vậy không? –
@PaulH: Tôi đã cập nhật OP. – neversaint
Hãy cho chúng tôi biết những gì bạn kết thúc. Đây là một câu hỏi quan trọng đối với nhiều người trong chúng ta. –