首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以调整d3气泡图,以获得零散位置的气泡,而不是圆包?

是否可以调整d3气泡图,以获得零散位置的气泡,而不是圆包?
EN

Stack Overflow用户
提问于 2015-06-14 10:53:22
回答 1查看 1.2K关注 0票数 2

我需要实现D3气泡图,但是由于气泡分散在除法中(在特定坐标处散布在除法中),而不是用圆圈包装layout.Is,那么可以用D3.js这样的方式设置气泡的位置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-14 15:35:10

当然,不要使用布局,自己设置每个圆圈cxcy

代码语言:javascript
运行
复制
svg.selectAll('circle')
  .data(data)
  .enter()
  .append('circle')
  .attr('r', function(d){
    return d.r;
  })
  .attr('cx', function(d){
    return d.x;
  })
  .attr('cy', function(d){
    return d.y;
  });

例如这里

编辑

你可以任意排列气泡,你只是在x/y 2d空间中定位它们。如果您想要进入复杂的事物,请考虑使用d3的鳞片来帮助将用户空间映射到像素空间。

这里是你的正弦波例子:

代码语言:javascript
运行
复制
var svg = d3.select('body')
  .append('svg')
  .attr('width', 500)
  .attr('height', 500);

var xscale = d3.scale.linear()
  .domain([0, 10])
  .range([0, 500]);

var yscale = d3.scale.linear()
    .domain([-1, 1])
    .range([0, 500]);

var data = [];
for (var i = 0; i < 10; i+=0.1){
  data.push({
    x: i,
    y: Math.sin(i),
    r: Math.random() * 10
  });
}

svg.selectAll('circle')
  .data(data)
  .enter()
  .append('circle')
  .attr('r', function(d){
    return d.r;
  })
  .attr('cx', function(d){
    return xscale(d.x);
  })
  .attr('cy', function(d){
    return yscale(d.y);
  });

另一个例子是这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30828496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档