2017-04-21 34 views
2

我正在评估从JFreeChart转换为dygraphs,但我正在寻找一种方法在x轴上具有1-log(x)值;主要蜱(等距离)将是90%,99%,99.9%,99.99%等等。是有可能提供变换函数要么dygraphs是否可以定制x轴缩放

一个)从数据到位置在图表

b)中可视化改造(I可以产生归一化的形式的数据,但随后的所有标签应转换)

搜索logscale表明没有一个地方设置线性/对数转换,所以我觉得对a)持怀疑态度。 (注意JFreeChart自然不提供这种开箱即用的功能,但是由于我对Java更加熟练,所以能够一起破解它)。

回答

1

您可以为x轴编写自定义ticker以使dygraph显示您喜欢的任何内容。文档参考this explanatory comment中的实现。请参阅this answer获取一些灵感。

g = new Dygraph(div, data, { 
    axes: { 
    x: { 
     ticker(min, max, pixels, opts, dygraph, vals) { 
     return [ 
      { v: 0.9, label:'90%' }, 
      { v: 0.99, label: '99%' }, 
      { v: 0.999, label: '99.9%' } 
     ]; 
     } 
    } 
    } 
}); 

至于渲染对数尺度,最好的办法是将它们传递给dygraphs,然后(使用valueFormatter)将它们转换回显示之前改变你的x值。