使用数据中的 d3 显示圆圈
Displaying circles using d3 from data
在这个小提琴中,我试图画从文件中读取的圆圈:
http://jsfiddle.net/zzz8svuq/17/
但是没有出现圆圈。
在这里,我将数据绑定到svg:
svg.data(data)
.enter().append("circle")
.attr("stroke", "red")
.attr("stroke-width" , "2px")
.attr("cx", xMap)
这是不正确的 ?
小提琴代码 :
var data = d3.csv.parse( d3.select("pre#data").text() );
var margin = {top: 20, right: 20, bottom: 130, left: 140},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var svg = d3.select("body").append("svg")
.attr("width", 500)
.attr("height",500)
.append("g");
var xValue = function (data) {
return data.x;
}
xScale = d3.scale.linear().range([0, width - margin.left - margin.right]) // value -> display
xMap = function (d) {
return xScale(xValue(d));
}
svg.data(data)
.enter().append("circle")
.attr("stroke", "red")
.attr("stroke-width" , "2px")
.attr("cx", xMap)
<pre style="display:none" id="data">
label,x,y,r
l1,100,30,50
l2,5,5,100
l3,50,50,20
</pre>
body {
font: 11px sans-serif;
}
.axis path,
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
更新:
添加
.attr("cy", 5)
.attr("r", 5)
但相同的结果
圆需要3个属性cx,cy(位置)和r(半径)。您没有提供 cy 或 r 和 r 默认值为 0,这意味着您的圆圈不会呈现。
如果要
将圆圈从 json 数据附加到容器,则必须将数据绑定到容器内的选择,而不是将数据绑定到容器。试试这种方式。
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("stroke", "red")
.attr("stroke-width" , "2px")
.attr("cx", xMap) //Center point X
.attr("cy", yMap) // Center point Y
.attr("r", 5); //Radius
确认 cx、cy 和 r 属性有效。
相关文章:
- D3.js生成有效的SVG,但不显示任何内容
- 如何使用d3在基于网格的(热图)图表上正确显示轴
- 仅当变量有值时才显示D3文本标签
- 使用D3.js和GeoJson在地图上显示States上的一些文本
- 在d3.js中显示圆弧末端的文本
- D3.js条形图未显示
- 点击浏览器的“后退”按钮显示的是JSON而不是HTML(使用Rails和d3.js)
- D3.js条形图:不显示 .text
- 单击按钮并将其下载为图像格式时,如何使用引导模式弹出窗口显示D3图表
- 在工具提示中显示D3 SVG
- 如何在d3.js中显示年时间刻度上的最小日刻度
- D3图表未在Android混合应用程序中显示
- 未显示在数据生成的d3形状顶部的套印格式
- 仪表D3.js在指针顶部显示值
- 如何在Apple Watch中显示D3.js图表
- 显示 D3.js将文本标记为两行
- 如何在网格框上显示 d3 元素
- 用柱状图行显示D3中不同的转换率
- 使用来自文件的外部Json数据来显示d3.js饼图
- 如何在Rails应用程序中显示d3.js的圆形包图