Javascript 是否将y轴显示为百分比?
我正在制作一张图表,我希望我的y轴刻度标签显示为百分比(而不是小数)。我该怎么做 我当前的代码看起来像Javascript 是否将y轴显示为百分比?,javascript,svg,format,d3.js,Javascript,Svg,Format,D3.js,我正在制作一张图表,我希望我的y轴刻度标签显示为百分比(而不是小数)。我该怎么做 我当前的代码看起来像 yAxis .append("text") .attr("class", "ticklabel") .attr("x", 0) .attr("y", y) .attr("dy", ".5em") .attr("text-anchor", "middle") .text(y.tickFormat(5)) .attr("font-size", "10px") 我注
yAxis
.append("text")
.attr("class", "ticklabel")
.attr("x", 0)
.attr("y", y)
.attr("dy", ".5em")
.attr("text-anchor", "middle")
.text(y.tickFormat(5))
.attr("font-size", "10px")
我注意到d3有一个,但我不确定如何将其与
tickFormat
结合使用,它看起来像是你手工创作的轴。我建议改为使用组件,它为您进行渲染。例如:
var formatPercent = d3.format(".0%");
var yAxis = d3.svg.axis()
.scale(y)
.orient("left")
.tickFormat(formatPercent);
如果要将百分比四舍五入到有效数字,可以使用p指令
为了更直接地回答您的问题,您使用d3.format而不是标尺的tickFormat。为了方便起见,Scales提供了默认的tickFormat,但是如果您想要不同的行为,那么您可以使用自定义的d3.format,而不是scale的默认格式。当我尝试使用
d3.format(.0%)时代码>它以%格式为我提供刻度值,但值会更改。使用此溶液后,原始滴答值为[-25,-20,-15,-10,-5,0,5,10,15,20],为[-2500%,-2000%,-1500%,-1000%,-500%,0%,500%,1000%,1500%,2000%]