更改 D3 中的轴显示值
Change axis displayed value in D3
我想更改图表中 y 轴的值,例如,不显示 [0,18],而是显示 [-18,0]。
我的轴初始代码是:
var y = d3.scale.linear().range([height, 0]);
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
我试着这样修改它:
var yAxisInv = d3.svg.axis()
.scale(y)
.orient("left")
.ticks(10)
.tickValues([-18, -16, -14, -12, -10, -8, -6, -4, -2, 0]);
但它只是沿着整个轴向下移动。我想做的是在不改变数据的情况下改变显示值
在图像中,它看起来像这样:
您可以使用 tickFormat
函数来定义您希望各个刻度出现的方式。
我认为像下面这样的东西会起作用:
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
.tickFormat(function(d) {
return -18+d;
})
我想更改图表中 y 轴的值,例如,不显示 [0,18],而是显示 [-18,0]。
我的轴初始代码是:
var y = d3.scale.linear().range([height, 0]);
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
我试着这样修改它:
var yAxisInv = d3.svg.axis()
.scale(y)
.orient("left")
.ticks(10)
.tickValues([-18, -16, -14, -12, -10, -8, -6, -4, -2, 0]);
但它只是沿着整个轴向下移动。我想做的是在不改变数据的情况下改变显示值
在图像中,它看起来像这样:
您可以使用 tickFormat
函数来定义您希望各个刻度出现的方式。
我认为像下面这样的东西会起作用:
var yAxis = d3.svg.axis()
.scale(y)
.orient("left");
.tickFormat(function(d) {
return -18+d;
})