javascript - d3.extent 在使用约束松弛绘制时在 x 轴和图形的点标签之间产生碰撞

标签 javascript d3.js

我有一个散点图,它使用约束松弛来消除它绘制的点的标签冲突 ( Plunker here )。问题是,当我放松约束时,这会导致点标签和 x 轴标签之间发生冲突。轴是使用 d3.extent 和 d3.scale.linear 生成的。

我试图通过延长 y 轴的长度来消除点标签和 x 轴的冲突,但我最接近的实现方式是更改 0 的原始值30 在以下节中:

var yext = d3.extent(data, d => d[1]);
var sy = d3.scale.linear()
  .domain(yext)
  .range([height, 30]) // flip y-axis
  .nice();

结果不太理想,在 x 轴和 y 轴之间留下了一个尴尬的间隙而不是交点: How the scatterplot looks now

我想要实现的是这样的: enter image description here

(除非我想通过代码而不是 Photoshop 来实现)。

任何人都可以演示解决方案吗? ( Plunker here )

最佳答案

为什么不在域中添加填充?喜欢:

.domain([yext[0] * 0.95, yext[1] * 1.05])
//less here---------^-- more here----^

这是该解决方案的 plunker:http://plnkr.co/edit/rKArjn7DwQa9g1X5CaNW?p=preview

关于javascript - d3.extent 在使用约束松弛绘制时在 x 轴和图形的点标签之间产生碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832784/

相关文章:

javascript - 使用 jquery 在我的站点中加载其他网页不起作用

d3.js - 同时在两个图表上的鼠标悬停事件 d3.js

d3.js - 如何控制 D3 中力有向图的反弹入口?

javascript - 查询 list 上的空指针异常

javascript - 从 knex-promise 中获取值(value)

javascript - 使用 webpack 无法让 Angular 组件在项目中工作?

javascript - 无法找到用户输入距下一个生日还有多少天

javascript - 使用 d3 将 Bootstrap 工具提示绑定(bind)到动态创建的 SVG 元素

javascript - 以下代码如何摆脱不定义节点初始 x 和 y 坐标的情况?

javascript - D3.js 树布局 Canvas 调整大小