【问题标题】:Grouped Bar Chart with negative value d3带负值 d3 的分组条形图
【发布时间】:2013-05-15 09:19:37
【问题描述】:

第一次在这里问。

我想在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 轴上进行任何更改。

我在网上到处都看过 - 但只有负数的堆积条形图,而不是负数的分组条形图。

请帮忙。 非常感谢您!

【问题讨论】:

  • 该示例中的 x 轴是一个分类轴,由 State 的值确定。更改它的最简单方法是在数据中为 State 设置不同的值。

标签: d3.js


【解决方案1】:

您给我们的样本数据不包含负值,这里有一些带有负值的随机数据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);

【讨论】:

  • 您好,再次感谢您的洞察力,现在我慢慢明白了。
  • 嗨,我已经成功完成了条形转换;但它没有绘制正确的高度;我知道为什么,但我只是不知道从哪里解决它。
  • man.. 我需要习惯不按回车键;这是小提琴 jsfiddle.net/srG6A/2>
  • @slobodan.blazeski 我正在尝试重新创建您的图表但无法这样做,这是我迄今为止创建的codepen.io/trainingc/pen/yzqmvZ?editors=0010#0。我试图将 CSV 转换为直接在 JS 中作为 JSON,但我很难在我的 JS 文件中将可能转换的 csv 添加到 JSON 中。提前谢谢你。
【解决方案2】:

我不明白 state 的负值是什么意思,移动 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");

【讨论】:

  • 嗨!感谢您的回复。
  • 我觉得有误会。您给我的添加线移动了垂直线。但我需要将水平线向上移动,并让条形图正确绘制。
  • 继续按 Enter。道歉。请看这里,x轴(水平)一直在底部,而条形虽然有些是负数,但仍然画在水平线的上方。 i.imgur.com/141H6BJ.png>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多