【问题标题】:Get all ticks values (NVD3)获取所有刻度值 (NVD3)
【发布时间】:2014-11-24 14:48:42
【问题描述】:
chart.xAxis.tickFormat(function(d) { 
   ...
}

是否有可能在执行之前获得将传递给此回调的“d”变量数组?我需要先分析这个数组,才能知道哪些值要显示在图表上,哪些值应该隐藏。

或者我可以更正这个数组并将其传递给 tickValues。

【问题讨论】:

  • chart.xAxis.ticks()
  • @LarsKotthoff 它返回某种图表宽度。例如:“10.95”。如果我让图表更小,它将返回类似:“7.65”。
  • 嗯,原来 NVD3 并没有公开这个 D3 方法,而是用自己的方法覆盖它,不设置刻度值......从源代码来看,看起来你应该能够获取使用chart.xAxis.scale().ticks(Math.abs(chart.xAxis.scale().range()[1] - chart.xAxis.scale().range()[0]) / 100) 自动设置的刻度值。
  • @LarsKotthoff 非常感谢!它有效!

标签: javascript d3.js nvd3.js


【解决方案1】:

NVD3 没有公开 D3 方法从刻度/轴获取刻度值,而是用它自己的不设置刻度值的方法覆盖它...

来自the source code,看起来您应该能够获取自动设置的刻度值

chart.xAxis.scale()
     .ticks(Math.abs(chart.xAxis.scale().range()[1] - chart.xAxis.scale().range()[0]) / 100)

请注意,这仅适用于水平轴(即您的情况下的 x 轴)。

【讨论】:

  • 如何在 y 轴上做到这一点?
  • yAxis 替换 xAxis -- 不知道这是否仍然有效。
猜你喜欢
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多