【问题标题】:Scale y-tick labels in DC.js chart (D3.js underneath)在 DC.js 图表中缩放 y-tick 标签(下面的 D3.js)
【发布时间】:2021-03-13 20:39:21
【问题描述】:

我正在尝试找到一种方法来动态缩放图表的 y 轴,以便数值以个位数显示,顶部带有指数表示,有效地改变了这一点:

到这里:

请注意,这会自动在例如Matlab/Matplotlib/etc.,但我正在努力寻找网络绘图框架的解决方案(也许我的搜索语言是错误的)......我知道 D3.js 不是图表库,但我愿意适用于前端 DC.js 或后端 D3.js 的解决方案


根据下面@Gordon 的回答进行编辑,我使用这个得到下图

chart.yAxis().tickFormat(d3.format('.1e'));

是否有可能将所有 e+6 移到顶部?还是我需要自己写一个自定义的缩放函数,插入一个单独的文本框?

【问题讨论】:

    标签: javascript d3.js plot dc.js axis-labels


    【解决方案1】:

    在 dc.js 中,坐标轴直接来自 d3-axis

    使用chart.xAxis()chart.yAxis() 访问它们,并在图表初始化的其余部分使用do this in a separate statement 以减少混淆。

    您可以使用axis.tickFormat 来控制刻度文本的格式。

    您可以使用d3.format 进行自动格式化。似乎指数或 SI 表示法可能适合您正在做的事情,尽管它与在屏幕截图中的单独文本元素中使用指数并不完全相同。

    放在一起,就差不多了

    chart.yAxis().tickFormat(d3.format('.1e'))
    

    刻度格式问题出现了很多。我想知道我们可以把这些信息放在哪里,这样人们就不必问了。

    【讨论】:

    • 我在看here,也许像警告这样的注释就足够了?
    • 谢谢;它指向 d3 轴文档,所以也许我们可以添加一个注释,如果你想更改刻度,那就是查看的地方!
    • ahhhh,现在我明白了,请原谅我在阅读 dc.js 文档时缺乏坚持/专注!
    • 不!总是很高兴获得一些虚假的互联网积分,但总是试图以小的方式改进文档。
    • %e 对我不起作用,.1e 让我更接近,但请参阅上文以获得更多说明
    猜你喜欢
    • 2015-10-18
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多