我一直在探索如何將圖例添加到繪圖並在繪製新類型的轉換之後更新圖例。我遇到了兩個問題,我一直無法解決問題。d3圖例,缺少文本標籤和重複值
塊是這裏http://bl.ocks.org/natemiller/df4b96809580fe7d00a6
樣品JSON數據集包括幾個不同的變量(溫度,pH值,名稱,Y等),我試圖開發是改變哪個變量被繪製在一塊土地上x軸和哪個變量確定單擊按鈕時數據點的填充。到目前爲止,我的x軸變化,點適當移動,圖例顏色正常變化。但是,我有兩個問題。
我錯過了圖例文本(標籤)。我不清楚他們爲什麼沒有被展示,但我認爲它缺少一個小細節。我會很感激任何幫助。
正如您在數據集中可以看到的那樣,有幾個來自同一地點或具有相同pH(7.2,8.0,7.2,7.2,8.0,8.0,7.6)的「樣品」,或者具有相同的溫度( 30,25,25,30,30,25,25)。因此,當我生成的傳說,如這裏的代碼...
varlegend = svg.selectAll('rect') .data(data) .enter().append("rect") .attr('x', width-50) .attr('y', function(d,i) {return i*20;}) .attr('width', 10) .attr('height', 10) .style('fill', function(d) { return color(d.name); });
...並設置使用顏色d.name我得到7個矩形(每個值),通過當填充顏色由網站或pH設置(如果填充由temp設置),我寧願有3個矩形,因爲某些值是重複的。有沒有辦法做到這一點?我已經考慮過d3.nest,但是當我啓動轉換時,我不再需要名稱嵌套的數據,而是通過pH(所以填充由d.pH設置)。我會很感激這方面的任何評論。我是以一種太複雜的方式來做這件事嗎?有沒有更簡單的方法我應該考慮完成這個相同的目標?
感謝您的時間和幫助, 內特
感謝您的幫助!我已經使用「g」標籤更新了代碼,以保存圖例的矩形和文本。這是更清潔,似乎很好地工作。 – 2013-03-08 20:04:39
對不起......在我最後的評論中意外打了ENTER。我也使用了你的建議,並在提供.data值時應用了一個函數。這適用於初始繪圖和轉換後,填充顏色和圖例中的文本都會更改,但其中一個pH(填充顏色和圖例文本)級別丟失,我有兩個級別。我已經玩了很多,不能破譯錯誤。新區塊在這裏http://bl.ocks.org/natemiller/41253b4413b176033e61 – 2013-03-08 20:09:21