我制作了直方图/条形图。我将频率数据读为整数,并按以下方式设置y轴:
var yScale = d3.scale.linear().range([300, 0]).domain([0, 2]);
var yAxis = d3.svg.axis().scale(yScale).orient(‘left’)
.tickFormat(d3.format(,.0f));
Run Code Online (Sandbox Code Playgroud)
不幸的是,y轴将每个频率重复几次,如下所示:

如何告诉d3停止在y轴上重复y值?我不想使用,.ticks(someNumber)因为我想保持刻度数本身灵活。
在轴上使用 .ticks(n) 而不是 tikFormat() 。ticks() 函数定义 d3 应该定位多少个刻度 - 它并不总是精确的数字。它自己选择最理智的划分单位。n 默认情况下为 10,但您可以根据域更改它,因此对于示例数据,您可以将其设置为 3 (0,1,2)。理论上您也可以在数据输入上使用它。
您的图表的范围/高度动态取决于数据吗?在大多数情况下,您不希望出现这种情况,因为它是不可预测的。如果您明确设置图表的高度,无论如何您确实希望将刻度和标签的数量限制为最适合该尺寸的数字。
您可能还想查看https://github.com/mbostock/d3/wiki/Quantitative-Scales#linear_nice。这允许您为您的报价定义规则。
| 归档时间: |
|
| 查看次数: |
2751 次 |
| 最近记录: |