nvd3.js x轴在图表重新渲染后不旋转所有刻度标签

时间:2016-04-26 17:16:01

标签: d3.js axis nvd3.js rotatetransform

我有一个nvd3图表,我按天,周或月分组数据。当我在x轴上具有较少数量的值时,我不会旋转轴标签,但是如果我有更大量的刻度,我将它们旋转以使它们不重叠。 我的问题是,当我有一个按星期分组的图表时,旋转刻度标签并将其逐月更改为大多数标签按预期变为水平,除了一个。如果我玩日期,我会发现问题总是在2016年2月或2014年12月。 如果我从当天分组开始按月分组,或者如果我刷新页面,则图表会按预期显示。 见下图: chart by weekchart by month

有没有人知道为什么我会遇到这种问题?

1 个答案:

答案 0 :(得分:2)

我找到了问题的解决方案。 在nv.models.axis的轴图表函数的文件nv.d3中,有一个if语句在标签被设置为旋转时运行(if(rotateLabels%360){...})。但是如果标签没有设置为旋转,则没有代码可以显式设置它,所以我在if语句中添加了一个else语句来排序问题:

else {
  xTicks
  .attr('transform', 'rotate(0)')
  .style('text-anchor', 'middle');
}