D3.js D3-带画笔的可调整大小图表
我已经创建了一个带有笔刷选择的timeseries图表,但我正在尝试调整图表的大小 我需要笔刷选择在调整大小之间保持,以便“焦点”图表在调整大小事件前后显示相同的数据范围 我认为我需要保存所选内容(如t1、t2),然后在调整所有元素的大小后重新应用它,但我不确定实现这一点的最佳方法 我已经阅读了,但找不到任何关于通过编程从t值获取/设置选择的建议 我接到一个电话到D3.js D3-带画笔的可调整大小图表,d3.js,responsive,D3.js,Responsive,我已经创建了一个带有笔刷选择的timeseries图表,但我正在尝试调整图表的大小 我需要笔刷选择在调整大小之间保持,以便“焦点”图表在调整大小事件前后显示相同的数据范围 我认为我需要保存所选内容(如t1、t2),然后在调整所有元素的大小后重新应用它,但我不确定实现这一点的最佳方法 我已经阅读了,但找不到任何关于通过编程从t值获取/设置选择的建议 我接到一个电话到brush。需要移动: context.select("g.brush") .call(brush) .call(
brush。需要移动:
context.select("g.brush")
.call(brush)
.call(brush.move, x.range());
但我不确定如何修改此选项以恢复以前的选择
如果有帮助的话,我已经创建了一个正在工作的小提琴,除了每次调整大小时重置的笔刷选择
首先,在调整大小时-记录宽度变化的比率:
var widthBefore = width;
width = svgWidth - margin.left - margin.right;
然后,确定当前笔刷选择
var brushSelection = null;
var brushNode = context.select("g.brush").node();
if (brushNode)
brushSelection = d3.brushSelection(brushNode);
根据更改比率修改所选内容
if (brushSelection) {
brushSelection = brushSelection.map(function(x) {
return x * (width / widthBefore);
});
}
如果没有选择,则返回到有效的内容
else
brushSelection = x.range();
然后把这个涂在刷子上
context.select("g.brush")
.call(brush)
.call(brush.move, brushSelection);