D3.js 在使用csv文件数据的d3散点图中,当鼠标位于某个点上时,如何绘制连接相关点的线?
我正在制作一个简单的散点图,我想在我的csv文件中使用除用于x轴和y轴的字段以外的其他两个字段,并在鼠标悬停在点上时用一条线将它们连接起来(如果它们相关)D3.js 在使用csv文件数据的d3散点图中,当鼠标位于某个点上时,如何绘制连接相关点的线?,d3.js,mouseover,scatter-plot,D3.js,Mouseover,Scatter Plot,我正在制作一个简单的散点图,我想在我的csv文件中使用除用于x轴和y轴的字段以外的其他两个字段,并在鼠标悬停在点上时用一条线将它们连接起来(如果它们相关) 我找遍了所有地方,找不到任何帮助,尤其是关于csv数据相关字段的帮助 这有很多可能的实现方式;这里有一个例子 给定以下csv值: x,y,r,l 5,26,10,2 43,62,22,2 45,21,15,0 10,10,12,0 其中x和y是位置,r是半径,l是另一个要画线的点的索引 .酒吧{ 填充:钢蓝; } .bar:悬停{ 填充物
我找遍了所有地方,找不到任何帮助,尤其是关于csv数据相关字段的帮助 这有很多可能的实现方式;这里有一个例子 给定以下csv值:
x,y,r,l
5,26,10,2
43,62,22,2
45,21,15,0
10,10,12,0
其中x和y是位置,r是半径,l是另一个要画线的点的索引
.酒吧{
填充:钢蓝;
}
.bar:悬停{
填充物:棕色;
}
.安讯士{
字体:10px无衬线;
}
.轴线路径,
.轴线{
填充:无;
中风:000;
形状渲染:边缘清晰;
}
//标准d3绘图设置
var margin={顶部:20,右侧:20,底部:30,左侧:40},
宽度=500-边距。左侧-边距。右侧,
高度=500-margin.top-margin.bottom;
var x=d3.scale.linear
.范围[0,宽度];
变量y=d3.scale.linear
.范围[高度,0];
var xAxis=d3.svg.axis
scalex先生
.定向底部;
var yAxis=d3.svg.axis
斯卡利先生
.orientleft;
var svg=d3.selectbody.appendsvg
.attrwidth,width+margin.left+margin.right
.attrhight,height+margin.top+margin.bottom
.附录
.attransform,translate+margin.left+,+margin.top+;
var color=d3.scale.category10;
//使用堆栈溢出代码编辑器进行注释
/*
d3.csvdata.csv,功能正常{
返回{
x:+d.x,
y:+d.y,
r:+d.r,
l:+d.l
}
},函数错误,数据错误{
*/
//这将是从d3.csv返回的数据
VarData=[{x:5,y:26,r:10,l:2},{x:43,y:62,r:22,l:2},{x:45,y:21,r:15,l:0},{x:10,y:10,r:12,l:0}];
//标准轴材料
x、 域[0,d3.maxdata,函数d{return d.x;}];
y、 域[0,d3.maxdata,函数d{return d.y;}];
svg.appendg
.attrclass,x轴
.attrtransform,translate0,+高度+
.callxAxis;
svg.appendg
.属性类,y轴
卡利亚克斯先生
.附录文本
.attransform,旋转-90
.attry,6岁
.attrdy,.71em
.styletext锚定,结束;
//画一个点g
var point=svg.selectAll.point
.数据
进来
.附录
.类,点;
//加圈
点圆
.attrcx,函数d{return xd.x;}
.attrr,函数d{return d.r;}
.attracy,函数d{return yd.y;}
.stylefill,function,i{return colori;}
//处理鼠标事件
//在这种情况下,我们将展示
//画到鼠标点的线
.onmouseover,函数d,i{
d3.选择All.lineTo+i
.不透明度,1;
}
.在mouseout,function,i{
d3.选择All.lineTo+i
.不透明度,0;
}
//添加线条并将“不透明度”设置为“不可见”
指向
.附录
.attrx1,函数d{return xd.x;}
.attry1,函数d{return yd.y;}
.attrx2,函数d{返回扩展数据[d.l].x;}
.attry2,函数d{return ydata[d.l].y;}
.attrclass,函数d{return lineTo+d.l;}
.stylestroke,function,i{return colori;}
.笔画宽度,2
.stylefill,无
.不透明度,0;
//};
您需要获取要连接的点的坐标,并添加一个线元素来连接它们。