2013-05-15 131 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