我正在嘗試爲每個美國州的統計數據創建面積圖。我對每個州都有單一的統計數字;我的數據列表中的一個元素如下所示:D3分類面積圖 - 量表問題
{'state':'CA','count':4000}
當前,我的區域圖看起來像this。該任務主要完成,但您可能會注意到最後一個類別(在這種情況下,UTAH)沒有填充。我不太清楚如何解決這個問題。 close_up
我正在使用scaleBand軸;這感覺很合適。也許這不是正確的做法。這裏是圖表背後的JS:
var svg_area = d3.select("#area")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom),
g_area = svg_area.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var x = d3.scaleBand().range([0, width]),
y = d3.scaleLinear().range([height, 0]);
var area = d3.area()
.x(function(d) { return x(d.state); })
.y0(height)
.y1(function(d) { return y(d.count); });
d3.csv('data/states.csv', function(data) {
data.forEach(function(d) {
d.count = +d.count;
});
data.sort(function(a, b){
return b.count-a.count;
});
data = data.slice(0,30);
x.domain(data.map(function(d) { return d.state; }));
y.domain([0, d3.max(data, function(d) { return d.count; })]);
g_area.append('path')
.datum(data)
.attr('fill', solar[1])
.attr("class", "area")
.attr('d', area);
g_area.append("g")
.attr("class", "x-axis")
.attr("transform", "translate(0," + height + ")")
.call(d3.axisBottom(x));
g_area.append("g")
.attr("class", "y-axis")
.attr("transform", "translate(0," + 0 + ")")
.call(d3.axisLeft(y));
});
關於如何解決這個問題的任何建議?感謝您的任何反饋!
你也可以分享你的數據...可能是猶他州的數據可能是0 ..? – Cyril
@Cyril所有狀態都有非零計數;猶他州是1866年。 – Sam