嗨,我想使用鱼眼失真插件为我的力定向图在d3。但当我想应用这个插件时,graph的行为很奇怪。我是d3新手。而且不擅长计算机图形学。
在jsfiddle中完成示例
var fisheye = d3.fisheye.circular()
.radius(200)
.distortion(2);
// graph - variable which represents whole graph
graph.svg.on("mousemove", function() {
fisheye.focus(d3.mouse(this));
d3.select("svg").selectAll("circle").each(function(d) { d.fisheye = fisheye(d); })
.attr("cx", function(d) { return d.fisheye.x; })
.attr("cy", function(d) { return d.fisheye.y; })
.attr("r", function(d) { return d.fisheye.z * 4.5; });
d3.select("svg").selectAll("line").attr("x1", function(d) { return d.source.fisheye.x; })
.attr("y1", function(d) { return d.source.fisheye.y; })
.attr("x2", function(d) { return d.target.fisheye.x; })
.attr("y2", function(d) { return d.target.fisheye.y; });
});
奇怪的行为我的意思是图的节点在鼠标悬停后消失(隐藏)。
问题是,您使用代码将cx
和cy
添加到圆圈中,但是您的圆圈实际上被封闭在nodeElements
中,这些节点被转换
编辑到位。
因此,将鱼眼代码更改为以下代码可以解决问题:
graph.svg.on("mousemove", function() {
fisheye.focus(d3.mouse(this));
// Change transform on the .node
d3.select("svg").selectAll(".node")
.each(function(d) { d.fisheye = fisheye({ x: graph.x(d.x), y: graph.y(d.y) }); console.log(d.fisheye, d); })
.attr("transform", function (d) { return "translate(" + d.fisheye.x + "," + d.fisheye.y + ")"; })
// Now change the 'r'adius on the circles within
// One can also scale the font of the text inside nodeElements here
.select("circle")
.attr("r", function(d) { return 15 * graph.nodeSizeFactor * d.fisheye.z; });
d3.select("svg").selectAll("line")
.attr("x1", function(d) { return d.source.fisheye.x; })
.attr("y1", function(d) { return d.source.fisheye.y; })
.attr("x2", function(d) { return d.target.fisheye.x; })
.attr("y2", function(d) { return d.target.fisheye.y; });
});
请注意,我还应用了适当的尺度图. x
和图. y
用于变换
属性和15*graph.nodeSizeFactor
用于圆的半径(而不是4.5
)。
工作演示:http://jsfiddle.net/90u4sjzm/23/
问题内容: 什么是Twisted最接近的Java替代方案? 问题答案: 与斯蒂芬(Stephane)一样,我建议您看一下Mina。它是异步网络IO的框架。它建立在前面提到的NIO之上,并且IMO隐藏了与Selectors,Channels等有关的一些复杂性。我已经使用Mina进行了几个项目,其效果相当不错,但是请注意,我发现文档有些薄弱。再有,就像Stephane提到的那样,它并没有对太多协议的现
问题内容: 我正在尝试使用扭曲的海螺在python中实现一个非常简单的文件传输客户端。客户端应该简单地以编程方式将一些文件传输到远程ssh / sftp服务器。该功能提供了用户名,密码,文件列表,目标服务器:目录,只需要以跨平台的方式进行身份验证和复制。 我已经阅读了有关Twisted的一些入门资料,并设法制作了自己的SSH客户端,该客户端仅在远程服务器上执行。我很难将其扩展到移动文件。我看了cf
问题内容: 谁能推荐一些简单的代码来使用Twisted设置简单的JSON RPC客户端和服务器? 我找到了txJSON-RPC,但我想知道是否有人对使用这些anc有一定的经验可以推荐一些东西。 问题答案: txJSONRPC很棒。我使用它,并且有效。我建议您尝试一下。 客户: 作为奖励,我将保留一些替代方案:放大器。 http://amp-protocol.net
我已经成功地为一个示例数据集实现了codeflower视图。用于实现这一目标的代码是: 我现在希望添加鱼眼扭曲到这个可视化,不知道如何去做。我已经研究了鱼眼的留档,但当我使用codeflower.js我不确定如何访问svg元素了。任何帮助都很感激。谢谢你。
地图鹰眼插件。 示例 <vuep template="#example"></vuep> <script v-pre type="text/x-template" id="example"> <template> <div class="amap-page-container"> <el-amap vid="amap" :plugin="plugin" class="a
我试图扭曲d3.geo.path()地图与fisheye.js插件(https://github.com/d3/d3-plugins/tree/master/fisheye)。 要扭曲一个对象,插件需要x 在d3中。它说: 投影函数采用表示位置坐标的两元素数字数组[经度,纬度],并返回表示投影像素位置[x,y]的类似两元素数字数组。例如,基本的球面墨卡托投影: https://github.com