繁体   English   中英

d3,js在水平条形图上将X和Y域设置为所有负值

[英]d3,js setting X and Y domains on Horizontal Bar Chart with all negative values

如何为所有负值的水平d3条形图设置x和y域? 对于具有所有正值的条形图,域为:

x.domain([0, d3.max(data, function (d) {
       return Math.abs(d.value);
    })]);
  y.domain(data.map(function (d) {
        return d.dataset;
    }));

对于具有正值和负值的条形图,域为:

x.domain(d3.extent(data, function (d) {
    return d.value;
}));

y.domain(data.map(function (d) {
    return d.dataset;
}));

但是当条形图都为负值时,我一直无法做到。

谢谢您的考虑。

您以及其他一些事情的利润率都不正确。

https://jsfiddle.net/fmr1x1gu/7/

var margin = {top: 30, right: 10, bottom: 50, left: 50},
    width = 500 - margin.left - margin.right,
    height = 300 - margin.top - margin.bottom;

svg.selectAll(".bar")
    .data(data)
    .enter().append("rect")
    .attr("class", function (d) {
        return "bar bar--" + (d.value < 0 ? "negative" : "positive");
    })
    .attr("x", function (d) {
        return width - x(d.value);
    })
    .attr("y", function (d) {
        return y(d.dataset);
    })
    .attr("width", function (d) {
        return x(d.value);
    })
    .attr("height", y.bandwidth());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM