为了账号安全,请及时绑定邮箱和手机立即绑定

当所有域输入值为 0 时,D3 范围返回 graphHeight 的一半而不是 0

当所有域输入值为 0 时,D3 范围返回 graphHeight 的一半而不是 0

ITMISS 2023-09-21 10:52:45
当域值不同时,代码可以正常工作。但当所有域值均为 0 时,条形高度变为 140,即 graphHeight 的一半,而不是 0。这是我的代码示例:const x = d3.scaleBand()            .rangeRound([0, graphWidth])            .padding(0.4);const y = d3.scaleLinear()            .rangeRound([graphHeight, 0]);const draw = (data) => {x.domain(data.map(function(d) {return d.type;}));y.domain([0, d3.max(data, function(d) {return d.number;})]);rects.enter()     .append('rect')     .on('mouseover', onMouseOver)     .on('mouseout', onMouseOut)     .merge(rects)     .attr('fill', '#30aaed')     .attr('x', d => x(d.type))     .attr('y', d => y(d.number))     .attr('width', x.bandwidth())     .attr('height', d => graphHeight - y(d.number))}
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

此问题出现在 d3 v5 中。所以,我使用 d3 v4 解决了这个问题。



查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信