簡體   English   中英

如何提取 d3 圖表的名義標簽

[英]How to extract nominal labels for d3 chart

我正在努力適應在 d3 中訪問和操作數據對象。

從本質上講,我正在嘗試創建條形圖,根據其地址是否在WayCloseStreetAvenue來反映房產的平均價格。

我已經在 Python 中使用 Pandas 處理了數據,然后使用三列districtstreet_splitvalue導出了數據。

地區列將用作在相鄰補丁中相同街道名稱的值之間交換的鍵。

這是代碼和 json 的 Plunk

我已經使用 nest 對districtstreet_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM