Dou*_*ger 2 javascript d3.js nvd3.js python-nvd3
如何在nvd3 lineChartY轴上使用对数刻度?我正在绘制包含大量数字的这些系列:
ydata1 = [13947989924.43, 13944328607.2, 13936012870.52, 13792849748.97, 13756681531.69]
ydata2 = [10031442377.14, 10026457857.22, 10013108551.11, 9995581772.15, 9989728780.19]
Run Code Online (Sandbox Code Playgroud)
而且由于Y轴犯规从开始0,ydata1并ydata2期待相距甚远很。如何调整它并使用对数刻度?
我的NVD3有点生锈,但是我想我可以帮忙。
您的系列也将与对数刻度相距甚远(如您建议的那样),这正是NVD3放置事物的方式,因此更改轴的范围将有所帮助。您可以如下更改y轴的比例类型和域:
日志轴的创建如下:
chart.yScale( d3.scale.log() );
Run Code Online (Sandbox Code Playgroud)
您可以这样设置基准:
chart.yScale( d3.scale.log().base(2) );
Run Code Online (Sandbox Code Playgroud)
您还可以通过使用强制y域包括特定范围(请记住:“对数刻度必须具有异或正或异域;该域不得包含或跨越零。”(d3文档)):
chart.forceY([1000000000,50000000000]);
Run Code Online (Sandbox Code Playgroud)
这可以帮助您将数据居中放置在远离顶部和底部边缘的位置。我不知道有任何NVD3方法可让您自动执行此操作,但是您可以根据数据集中的最大值/最小值动态设置这些值。
以下代码段使用y轴的对数刻度和强制域:
chart.yScale( d3.scale.log() );
Run Code Online (Sandbox Code Playgroud)
chart.yScale( d3.scale.log().base(2) );
Run Code Online (Sandbox Code Playgroud)
chart.forceY([1000000000,50000000000]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |