我正在使用 d3.js 来显示有关网络流量的信息,效果非常好。在可视化中的某个点,使用 y 轴来显示字节数。
我目前正在使用 d3.svg.axis().ticks() 系统,这会产生像 20000 这样的漂亮整数。当转换为 kB/MB/等时,结果是像 19.5 和 9.8 这样的尴尬数字。有没有办法让 (2^(10*c)) 的倍数(例如 1024、1048576 等)而不是 (10^c) 的倍数返回刻度?
其他信息/想法:
- 我很欣赏 svg.axis 为我处理绘画的具体细节,并希望找到一个不会取代此功能的解决方案。
- 我愿意修改 d3 并提交拉取请求,只要它能够与 @mbostock 和公司合作。
- 我检查了存储库,重点关注d3_scale_linearTickRange() 及其周围的代码,但没有看到一种简单的方法可以在不更改默认功能的情况下实现我的目标,而我需要其他轴。
- 下面发布了一种可以考虑的潜在解决方法,但它接近于不诚实。