我想根据图表上可用的节点数量实现自动缩放功能。目前正在从api中提取节点,并根据对服务器的请求改变数量。
我尝试过以下代码:
//limit scale to max 1.5 and min limit to 0.4
function zoomer(){
scale = ((height/7)/total_node_count) ;
scale = scale > 1 ? 0.6 : scale
scale = scale >= 1.0 && scale <= 0.6 ? scale - 0.3 : scale
scale = scale <= 0.4 ? 0.4 : scale
}
它运作良好,但它并不涵盖所有边缘情况,我想尝试使用域和范围的东西:
scale_range = d3.scale.linear().domain([0,1000]).range([10,0.2])
scale = scale_range(all_data.nodes.length)
根据每个场景中的节点数量放大或缩小。