Bởi vì nguồn gốc của hệ tọa độ là từ phía trên bên trái, giá trị 'y' được neo tại đầu mỗi thanh. Nếu giá trị 'y' được cố định và 'chiều cao' được tăng lên, có vẻ như các thanh sẽ tăng. Để làm cho các thanh phát triển từ phía dưới, bạn sẽ cần phải chuyển đổi cả 'y' và 'chiều cao' cùng một lúc.
Đây phải là những gì bạn đang tìm kiếm, tôi chỉ thay đổi hai dòng.
chart.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("x", function(d, i) { return x(i) - .5; })
.attr("y", function(d) { return h - .5; }) //new----
.attr("width", w)
.transition().delay(function (d,i){ return i * 300;})
.duration(300)
.attr("height", function(d) { return y(d.value); })
.attr("y", function(d) { return h - y(d.value) - .5; }); //new-----
Tôi đã bắt đầu giá trị 'y' ở cuối biểu đồ (h - 0.5). Sau đó, khi bạn chuyển đổi, bạn tăng 'chiều cao' (y (d.value)) và giảm 'y' (h - y (d.value)) ở cùng một tỷ lệ. Điều này có tác dụng cố định đáy thanh cho trục.
Hy vọng điều này sẽ hữu ích!
thanks a lot, làm việc một cách hoàn hảo –
tôi đã gặp vấn đề với một cái gì đó ver y tương tự như vậy cho đến khi tôi cũng thiết lập chiều cao là 0 trước khi chuyển đổi(). một cái gì đó như: '.attr (" chiều cao ", hàm (d) {return 0;})' – kendlete