2013-05-15 158 views
0

第一次在這裏詢問。帶負值的分組條形圖d3

我想修改這裏的代碼https://gist.github.com/mbostock/3887051,這樣它就會顯示負值。

我只設法得到y軸改變這條線,以顯示正確的負值

y.domain([0, d3.max(data, function(d) { return d3.max(d.ages, function(d) { return d.value; }); })]); 

是:

y.domain([ d3.min(data, function(d) { return d3.min(d.ages, function(d) { return d.value; }); }), d3.max(data, function(d) { return d3.max(d.ages, function(d) { return d.value; }); })]); 

但是,只需要y軸的照顧,我不能在x軸上獲得任何改變。

我已經看遍了網上 - 但只有堆疊條形圖負面,沒有分組的條形圖負面。

請給予幫助。 非常感謝您提前!

+0

在於例子中的x軸是受用於'State'的值確定一個明確的軸線。改變它的最簡單方法是在數據中爲「State」設置不同的值。 –

回答

3

你給了我們不包含負值您的樣本數據,這裏的一些隨機數據的撥弄負值這部分http://jsfiddle.net/srG6A/留意了:

// if 0 is not between min & max I put x-axis on the bottom 
var xAxisTransform = height; 
    if(d3Min < 0 && 0 < d3Max) { 
     xAxisTransform = height * (d3Max/(d3Max -d3Min)); 
    } 
    svg.append("g") 
      .attr("class", "y axis") 
      .attr("transform", "translate(0," + xAxisTransform + ")") // this line moves x-axis 
      .call(xAxis); 
+0

你好, 再次感謝你的洞察力,現在它對我來說慢慢有意義。 – user2385109

+0

嗨,我設法做了酒吧改造;但它沒有畫出正確的高度;我知道爲什麼,但我不知道從哪裏解決。 – user2385109

+0

男人..我需要習慣於不按下輸入; 這是小提琴 user2385109

1

我看不出有什麼狀態的負值意味着,如何移動y軸創建負值

的錯覺
svg.append("g") 
      .attr("class", "y axis") 
      .attr("transform", "translate("+width/2+",0)") // added line 
      .call(yAxis) 
      .append("text") 
      .attr("transform", "rotate(-90)") 
      .attr("y", 6) 
      .attr("dy", ".71em") 
      .style("text-anchor", "end") 
      .text("Population"); 
+0

嗨!感謝您的回覆。 – user2385109

+0

我覺得有一個誤區。你給我的附加行移動了垂直線。但是我需要將水平線向上移動,並且讓杆正確繪製。 – user2385109

+0

保持按Enter鍵。道歉。 請看這裏,X軸(水平)一直在底部,而酒吧,儘管有些是負面的,但它們仍然繪製在水平線之上。 user2385109