[英]How to extract nominal labels for d3 chart
我正在努力適應在 d3 中訪問和操作數據對象。
從本質上講,我正在嘗試創建條形圖,根據其地址是否在Way
、 Close
、 Street
、 Avenue
來反映房產的平均價格。
我已經在 Python 中使用 Pandas 處理了數據,然后使用三列district
、 street_split
和value
導出了數據。
地區列將用作在相鄰補丁中相同街道名稱的值之間交換的鍵。
這是代碼和 json 的 Plunk
我已經使用 nest 對district
和street_split
上的數據進行了street_split
因此:
var nested_data = d3.nest()
.key( function(d){
return d['district']})
.key(function(d) { return d.street_split; })
.entries(data);
雖然我可以使用代碼以及以下行訪問下拉選擇器框的第一級鍵:
options.text(function (d) { return d.key; })
.attr("value", function (d) { return d.key; });
我不知道如何訪問street_split
級別。
我能從 Google 找到的最好的是范圍函數,但它只返回限制(應該如此)。
// Find range of street_name column
var street_extent = d3.extent(data, function(d) {
return d['street_split'];
});
我正在尋求建議或資源以掌握 d3 中的此查詢基本數據操作。
如果有幫助,我發現這對於理解 d3.nest 非常有用。
我這樣做的方法是根據原始的非嵌套數據創建一組 street_extent 列的每個值,如下所示:
var street_extent = d3.set();
data.forEach(function(d) {
street_extent.add(d['street_split']);
});
然后創建了一個包含這些標簽的變量:
var street_labels = street_extent.values();
然后使用 rangeRoundBands 方法將其插入到比例尺中
var street_scale = d3.scale.ordinal()
.rangeRoundBands([0+margin, width], .1)
.domain(street_labels);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.