D3.js D3中的自定义线性比例
我有一个线性刻度,我用它作为图表中的一个轴 我想定义一个只显示正数的自定义格式,下面的示例中我用这种方式创建了一个自定义格式:D3.js D3中的自定义线性比例,d3.js,D3.js,我有一个线性刻度,我用它作为图表中的一个轴 我想定义一个只显示正数的自定义格式,下面的示例中我用这种方式创建了一个自定义格式: function yFormat(formats) { return function(value) { var i = formats.length - 1, f = formats[i]; while (!f[1](value)) f = formats[--i]; re
function yFormat(formats) {
return function(value) {
var i = formats.length - 1, f = formats[i];
while (!f[1](value)) f = formats[--i];
return f[0](value);
};
}
var customFormat = yFormat([
[d3.format("?????"), function() { return true }],
[d3.format("d"), function(d) { return d >= 0 }]
]);
但是我不知道如何为数字()
有人有主意吗?谢谢
编辑
d3.格式(“”
似乎适用于时间刻度,但不适用于线性刻度。在控制台中:
> var emptyTime = d3.time.format("");
undefined
> emptyTime("something");
""
> var emptyInt = d3.format("");
undefined
> emptyInt(5);
"5"
回答
我只是在轴本身上使用TickValue。比如说:
yAxis.tickValues(
d3.range(
0,
d3.max(y.domain()),
shift
)
);
“空”格式是什么意思<代码>d3.格式(“”?我试过了,但出于某种原因,它显示负数。如果刻度是时间刻度,它会起作用,但它似乎不适用于线性刻度。在这种情况下,您必须使用
tickValues
设置要显式显示的刻度。格式化程序实际上只是这样。好的,所以刻度将包含负值,但只显示正值的刻度。很好,谢谢!