我正在尝试在轴上添加自定义比例,如下所示
这个想法是,一个刻度总是比前一个刻度大 2 倍。
我的理解是,这是一个定制秤。我做了一些研究,但找不到类似的东西。
所以我想我的问题实际上是两个问题:
这个尺度是数学世界的“标准”吗?
这是否可以使用来实现d3.js
?
也欢迎任何相关教程或实例(即 jsFiddle)的链接。
编辑:我现在问了mathematica.stackexchange.com 上的相关问题可帮助我找到此问题的解决方案 https://mathematica.stackexchange.com/questions/51823/chart-with-its-ticks-in-geometric-progression&将在我尝试了一些事情后更新这篇文章。
在这种情况下可以使用多线性比例。从线性比例尺 API 文档 https://github.com/mbostock/d3/wiki/Quantitative-Scales#linear_domain:
尽管线性刻度通常只有两个数值
域,您可以为多线性比例指定两个以上的值。
在这种情况下,必须有相同数量的值
输出范围。多线性尺度表示多个分段线性
划分连续域和范围的尺度。
这是一个适合您要求的示例:
// Your custom scale:
var customScale = d3.scale.linear()
.domain([125,250,500,1000,2000])
.range([0,50,100,150,200]);
// The axis uses the above scale and the same domain:
var axis = d3.svg.axis()
.scale(customScale)
.tickValues([125,250,500,1000,2000]);
知道刻度数以及域和值域的范围后,两个数组的计算就很简单了(注意它们的长度必须相等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)