D3.js 带负值d3的分组条形图

D3.js 带负值d3的分组条形图,d3.js,D3.js,第一次在这里问 我想在这里修改这段代码,使其显示负值 通过改变这条线,我只能使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; });

第一次在这里问

我想在这里修改这段代码,使其显示负值

通过改变这条线,我只能使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轴上做任何改变

我在网上找遍了所有地方,但只有带负数的堆叠条形图,没有带负数的分组条形图

请帮忙。
提前非常感谢

我不明白状态的负值意味着什么,移动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");

我不明白状态的负值意味着什么,移动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");

您提供给我们的样本数据不包含负值,这里有一些带有负值的随机数据,请注意这一部分:

// 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不在最小值和最大值之间,我将x轴放在底部
var XaxistTransform=高度;
如果(d3Min<0和&0
您提供给我们的样本数据不包含负值,这里有一些带有负值的随机数据。请注意这一部分:

// 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不在最小值和最大值之间,我将x轴放在底部
var XaxistTransform=高度;
如果(d3Min<0和&0
该示例中的x轴是一个分类轴,由
状态的值确定。最简单的更改方法是在数据中为
状态
设置不同的值。该示例中的x轴是由
状态
的值确定的分类轴。最简单的更改方法是在数据中为
State
设置不同的值。您好!谢谢你的回复。我想这是一个误会。你给我添加的线移动了垂直线。但我需要将水平线向上移动,并让横杆正确绘制。继续按Enter键。道歉。请看这里,x轴(水平)一直在底部,而条形图,尽管有些是负数,但它们仍然绘制在水平线上方。你好谢谢你的回复。我想这是一个误会。你给我添加的线移动了垂直线。但我需要将水平线向上移动,并让横杆正确绘制。继续按Enter键。道歉。请看这里,x轴(水平)一直在底部,而条形图,尽管有些是负数,但它们仍然绘制在水平线上方。您好,再次感谢您的洞察力,现在它对我来说慢慢有意义了;但它没有画出正确的高度;我知道为什么,但我就是不知道从哪里解决它。。我需要习惯不按回车键;这里是Fiddle@slobodan.blazeski,我正在尝试重新创建您的图表,但无法做到这一点,这里是我迄今为止创建的图表。我试图将CSV转换为JSON格式,但我在JS文件中添加了一个可能的CSV转换为JSON格式,这让我很为难。提前谢谢。您好,再次感谢您的洞察力,现在它对我来说慢慢有意义了。您好,我已经成功地完成了条形图转换;但它没有画出正确的高度;我知道为什么,但我就是不知道从哪里解决它。。我需要习惯不按回车键;这里是Fiddle@slobodan.blazeski,我正在尝试重新创建您的图表,但无法做到这一点,这里是我迄今为止创建的图表。我试图将CSV转换为JSON格式,但我在JS文件中添加了一个可能的CSV转换为JSON格式,这让我很为难。先谢谢你。