cập nhật biểu đồ pie dụ trên trang web bl.ocks không cập nhật các yếu tố 'tại chỗ':Có thể tạo biểu đồ hình tròn với tính nhất quán của đối tượng không?
http://bl.ocks.org/j0hnsmith/5591116
function change() {
clearTimeout(timeout);
path = path.data(pie(dataset[this.value])); // update the data
// set the start and end angles to Math.PI * 2 so we can transition
// anticlockwise to the actual values later
path.enter().append("path")
.attr("fill", function (d, i) {
return color(i);
})
.attr("d", arc(enterAntiClockwise))
.each(function (d) {
this._current = {
data: d.data,
value: d.value,
startAngle: enterAntiClockwise.startAngle,
endAngle: enterAntiClockwise.endAngle
};
}); // store the initial values
path.exit()
.transition()
.duration(750)
.attrTween('d', arcTweenOut)
.remove() // now remove the exiting arcs
path.transition().duration(750).attrTween("d", arcTween); // redraw the arcs
}
Thay vào đó, nó chỉ xử lý các mảng mới có giá trị như thương hiệu dữ liệu mới và thay đổi kích thước biểu đồ cho phù hợp.
Tôi đã tạo một fiddle chứng minh vấn đề này rất đơn giản:
Nếu bạn bấm 'thêm', nó thêm một int ngẫu nhiên để mảng: công trình này như dự định.
Nếu bạn nhấn 'xóa', yếu tố duy nhất bị chuyển ra ngoài luôn là yếu tố cuối cùng đã nhập vào chiếc bánh. Tóm lại, nó hoạt động giống như một ngăn xếp LIFO. Hành vi dự kiến là dành cho vòng cung tròn có liên quan để được chuyển đổi thay thế.
Có thể áp dụng tính nhất quán của đối tượng cho bánh nướng không? Tôi cũng đã thử thêm một chức năng quan trọng (không được chứng minh trên fiddle) nhưng điều đó chỉ phá vỡ (kỳ quặc đủ nó hoạt động tốt với các đồ thị xếp chồng lên nhau của tôi).
Cảm ơn bạn.
bạn có thể cung cấp một ví dụ đồ họa về những gì bạn có nghĩa là - những gì bạn sẽ mong đợi để xem trước và sau khi thêm một yếu tố mới? Nó không rõ ràng với tôi - một chiếc bánh cơ bản đại diện cho 100% của một tập hợp dữ liệu. Khi bạn thêm một phần tử mới vào biểu đồ hình tròn, tất cả các phần tử khác phải giảm tương ứng và ngược lại cũng đúng. – mccannf
Xin chào mccannf, cảm ơn bạn đã lưu ý. Nếu bạn nhìn vào jsfiddle được liên kết thứ hai trong bài viết gốc của tôi, bạn có thể thấy rằng khi nhấn 'remove', bạn sẽ xóa một phần tử dữ liệu ngẫu nhiên cụ thể khỏi tập hợp. Tôi mong rằng vòng cung đặc biệt đó sẽ chuyển đổi. Thay vào đó, nó recolors tất cả các cung với màu sắc mới, và chuyển đổi ra một trong những cuối cùng mà nhập vào - không còn phản ánh các số liệu cơ bản. Vì lý do đó, có vẻ như d3 cũng không bảo toàn các chỉ số. –
Ok, đã hiểu. Chẳng hạn như ví dụ này sẽ giúp: http://bl.ocks.org/mbostock/3888852. Ở đây mbostock đã gán một miền màu cho các tiêu đề dữ liệu và một chú thích được liên kết. – mccannf