javascript - 如何添加抖动以避免 D3 中的过度绘制?

标签 javascript d3.js

有什么方法可以向绘图上的点添加抖动以避免过度绘图? X 轴是“分类”值,“y 轴”是“数字”值。 使用下面给出的代码,我可以在 X/Y 上绘图,但一些观察结果是重叠的。

谢谢

我的部分代码是

var xValue = function(d) { return d[xVar];}, // data -> value
    xScale = d3.scale.ordinal()
               .rangeRoundBands([0,width],1),
      xMap = function(d) { return xScale(xValue(d));},
     xAxis = d3.svg.axis().scale(xScale).orient("bottom");

var yValue = function(d) { return d[yVar];}, // data -> value
    yScale = d3.scale.linear().range([height, 0]), // value -> display
      yMap = function(d) { return yScale(yValue(d));}, // data -> display
     yAxis = d3.svg.axis().scale(yScale).orient("left");

svg.selectAll(".dot")
  .data(data)
  .enter().append("circle")
  .attr("class", "dot")
  .attr("r", radius)
  .attr("cx", xMap)
  .attr("cy", yMap)
  .style("fill", function(d) { return color(cValue(d));})

最佳答案

我向所有 x 值添加抖动,如下所示。 xMap = function(d) { return (xScale(xValue(d)) + Math.random()*10);}, 这将有助于避免过度绘制。

关于javascript - 如何添加抖动以避免 D3 中的过度绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458363/

相关文章:

javascript - jQuery 对象比较

javascript - 在这个例子中如何使用$(this)?

javascript - 意外的标记。构造函数、方法、访问器或属性的预期 Angular 为 5

javascript - D3 V5树链接源位置不正确

javascript - 从辅助 Y 轴上的值中删除负号(Nvd3 - 多条水平图表)

javascript - 与 child 一起 react 测试组件

javascript - 如何在一段时间后更改 HTML 中的 div 内容,然后再次启动?

javascript - addEventListener (经典 dom svg-elment) 和 .on (at d3js) 之间的区别在哪里

javascript - 在 D3.js 中单击圆圈时如何隐藏画笔?

firefox - d3.time.scale() 不适用于 IE 10 和 Firefox 上的日期输入