nvd3 - 如何在 windows 调整大小时重绘轴
nvd3 - How to redraw axis on windows resize
我已经尝试解决这个问题一段时间了,但没有成功。
我需要能够调整图表大小并在 window 调整大小时更新比例尺(目前只有 X)。
我试过 nv.utils.windowResize
和 window.on("resize", update);
但是上面的 none 有效。
生成我的坐标轴的函数每次都会被调用(console.log)但是由于某种原因图表中的坐标轴没有更新。
有什么建议吗?这是我第一次尝试使用 D3 和 NVD3,它有点复杂。
感谢您的耐心和支持,这是一个示例代码(使用angular js):http://codepen.io/NickHG/pen/rLWNea?editors=0010
看起来我设法解决了这个问题。
文档中一点也不清楚,但我是这样做的:
var width = window.innerWidth;
var xScale = d3.time.scale().domain([date, date]).nice(d3.time.day).range([0, width])
chart.xAxis.scale(xScale)
.ticks(6)
.tickFormat(d3.time.format("%H:%M"))
nv.utils.windowResize(function() {
width = window.innerWidth;
chart.xAxis.range([0, width])
chart.update()
});
我已经尝试解决这个问题一段时间了,但没有成功。
我需要能够调整图表大小并在 window 调整大小时更新比例尺(目前只有 X)。
我试过 nv.utils.windowResize
和 window.on("resize", update);
但是上面的 none 有效。
生成我的坐标轴的函数每次都会被调用(console.log)但是由于某种原因图表中的坐标轴没有更新。
有什么建议吗?这是我第一次尝试使用 D3 和 NVD3,它有点复杂。
感谢您的耐心和支持,这是一个示例代码(使用angular js):http://codepen.io/NickHG/pen/rLWNea?editors=0010
看起来我设法解决了这个问题。
文档中一点也不清楚,但我是这样做的:
var width = window.innerWidth;
var xScale = d3.time.scale().domain([date, date]).nice(d3.time.day).range([0, width])
chart.xAxis.scale(xScale)
.ticks(6)
.tickFormat(d3.time.format("%H:%M"))
nv.utils.windowResize(function() {
width = window.innerWidth;
chart.xAxis.range([0, width])
chart.update()
});