dữ liệu của tôi có phần trăm như, ví dụ, [10.1, 3.2, 5.4]
d3.js: tickformat - thêm một dấu% mà không cần nhân với 100
d3.format("0f")
sẽ cho tôi [10, 3, 5]
d3.format("0%")
sẽ cho tôi [1010%, 320%, 540%]
(nhân lên bởi 100)
làm cách nào để nhận được [10%, 3%, 5%]
?
tôi không thể tìm ra nơi để thêm một + "%" vào trường hợp đầu tiên hoặc loại bỏ * 100 trong trường hợp thứ hai
các bộ phận liên quan của mã:
var formatPercent = d3.format("0f");
var min = 0;
var max = d3.max(data, function(d) { return + d[5]; });
max = Math.round(max * 1.2); // pad it
//define the x-axis
var xAxis = d3.svg.axis()
.scale(x)
.orient('top')
.ticks(6)
.tickFormat(formatPercent);
và dữ liệu có dạng như sau:
{
"Geography": [
["Midwest", 234017797, 498, 8.2, 9.0, 11.3],
["Northeast", 265972035, 566, 8.9, 12.1, 13.1],
["South", 246235593, 524, 8.1, 8.3, 10.8],
["West", 362774577, 772, 9.4,9.9, 11.7]
]
}
Đây là ba số cuối trong mỗi dòng là giá trị phần trăm tôi đang sử dụng cho phạm vi biểu đồ. Tôi muốn trục x được định dạng ở dạng số nguyên +% dựa trên giá trị cao và thấp trong dữ liệu.
Cảm ơn bạn!
bạn có thể đăng thêm một chút mã quan tâm không? – tomtomtom
@tomtomtom Tôi đã thêm các chi tiết khác từ mã. Tôi nhận ra tôi có thể chỉ cần thao tác dữ liệu cho tối đa và min để có được xung quanh này, nhưng tôi muốn biết làm thế nào để chỉ cần thêm một dấu phần trăm. – rolfsf
var formatPercent = function (d) {return d3.format ("0f") + "%"} có thể làm thủ thuật, nhưng tôi không chắc chắn – tomtomtom