Javascript 减少nvd3折线图中对数刻度的刻度数

Javascript 减少nvd3折线图中对数刻度的刻度数,javascript,d3.js,data-visualization,nvd3.js,Javascript,D3.js,Data Visualization,Nvd3.js,我正在使用nvd3生成折线图。我想要y轴的log-刻度。 为此,我使用以下代码: const chart = nv.models.lineChart() .x(function (d) { return d[0] }) .y(function (d) { return d[1] }) .margin({ left: 100 }) .useInteractiveGuideline(true) .showLegend(true) .s

我正在使用
nvd3
生成折线图。我想要y轴的
log
-刻度。 为此,我使用以下代码:

const chart = nv.models.lineChart()
    .x(function (d) { return d[0] })
    .y(function (d) { return d[1] })
    .margin({ left: 100 })  
    .useInteractiveGuideline(true)
    .showLegend(true)       
    .showYAxis(true)        
    .showXAxis(true);

chart.xAxis.tickFormat(d3.format(',r'));
chart.yAxis.tickFormat(d3.format('.02f'));
chart.yScale(d3.scale.log());
我得到的结果如下:


有没有办法减少y轴的记号数,这样它们就不会重叠?或者是否有任何库可以用来合理地生成滴答声?我希望避免手动设置
tickValues

有一种简单的方法可以使用.ticks()方法指定显示的tick数。D3.js v3 API声明:

合适的参数取决于相关的刻度:对于线性刻度,可以指定刻度计数,例如axis.ticks(20);对于对数刻度,可以同时指定计数和刻度格式

这似乎适用于D3.js中的对数刻度

var nTicks = 10;
var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom")
    .ticks(nTicks, d3.format('.02f'))
    .tickSize(6, 0);
但不在NVD3.js中

请参见D3.js的工作修改片段:
var margin={top:210,right:20,bottom:220,left:20},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.scale.log()
.domain([01241231230.4])
.范围([0,宽度]);
var nTicks=10;
var xAxis=d3.svg.axis()
.比例(x)
.orient(“底部”)
.ticks(nTicks,d3.format('.02f'))
.尺寸(6,0);
var svg=d3.选择(“正文”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。右侧+边距。底部)
.附加(“g”)
.attr(“转换”、“平移”(+margin.left+)、“+margin.top+”);
svg.append(“g”)
.attr(“类”、“x轴”)
.呼叫(xAxis)
.axis文本{
字体:10px无衬线;
}
.轴线路径,
.轴线{
填充:无;
行程:#000;
形状渲染:边缘清晰;
}

@darkpatronuslinkx re first snippet-在d3v5中,是否可以仅显示一个数量级的第一个和最后一个刻度?我正在尝试相同的设置,但在d3v5中不起作用