我试图绘制带宽不均匀的序数轴。我知道有一种方法可以按照指定here使用范围来实现,但它似乎不适用于rangeBands或rangeRoundBands。
var letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m"];
var custom_range = [0, 19, 78, 97, 116, 135, 154, 173, 192, 211, 230, 249, 268];
var y_scale = d3.scale.ordinal().domain(letters).rangeRoundBands(custom_range);
console.log(y_scale.range());
得到的比例是:
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
如何使用rangeBands或rangeRoundBands实现自定义范围?我尝试使用范围,但它没有按照我需要的方式绘制轴。
感谢。
答案 0 :(得分:1)
让我详细说明Lars'回答......呃..我的意思是评论。
您的范围将被划分为n个宽度,每个宽度(范围的大小/频带的数量= n),其中n是给定数据集内的数据的数量。因此,如果您有100px和10个数据,那么您将拥有100px / 10 datum = 10px宽条。这就是为什么"你不能拥有宽度不均匀的乐队" - Lars< 3
您可以在此处详细了解rangeBands和rangeRoundBands: https://github.com/mbostock/d3/wiki/Ordinal-Scales#ordinal_rangeBands