Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否将y轴显示为百分比?_Javascript_Svg_Format_D3.js - Fatal编程技术网

Javascript 是否将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") 我注

我正在制作一张图表,我希望我的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")

我注意到d3有一个,但我不确定如何将其与
tickFormat

结合使用,它看起来像是你手工创作的轴。我建议改为使用组件,它为您进行渲染。例如:

如果要将记号格式化为百分比,请使用的%s指令:

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%]