D3.js ds3.js水平条-如何使y轴居中?
下面我将制作一个带有正负值的水平条形图 我试着将y轴居中,这样x轴的每边长度都是一样的。但是在那里找不到任何例子。我希望x轴的比例对数据保持敏感,因此不希望指定范围 我无法得到他在工作中给出的榜样 对于定量标度,使用d3.extent计算数据域(最小值和最大值): 刻划刻度将使范围略微扩大到最接近的整数。如果希望零值 集中在画布的中间,取更大的 最小值和最大值的大小,或简单地硬编码 所需域D3.js ds3.js水平条-如何使y轴居中?,d3.js,D3.js,下面我将制作一个带有正负值的水平条形图 我试着将y轴居中,这样x轴的每边长度都是一样的。但是在那里找不到任何例子。我希望x轴的比例对数据保持敏感,因此不希望指定范围 我无法得到他在工作中给出的榜样 对于定量标度,使用d3.extent计算数据域(最小值和最大值): 刻划刻度将使范围略微扩大到最接近的整数。如果希望零值 集中在画布的中间,取更大的 最小值和最大值的大小,或简单地硬编码 所需域 任何关于如何正确计算域名的例子或帮助都是最受欢迎的 首先,让我们看看哪个更大,最小值还是最大值: var
任何关于如何正确计算域名的例子或帮助都是最受欢迎的 首先,让我们看看哪个更大,最小值还是最大值:
var greater;
if (Math.abs(d3.min(data, function(d){ return d.value})) > Math.abs(d3.max(data, function(d){ return d.value}))) {
greater = Math.abs(d3.min(data, function(d){ return d.value}));
} else {
greater = Math.abs(d3.max(data, function(d){ return d.value}));
};
然后设置比例:
var x = d3.scale.linear()
.domain([greater * -1, greater])
.range([0, width]);
var x = d3.scale.linear()
.domain([greater * -1, greater])
.range([0, width]);