链接3个简单的正方形数据,其中包括所需的颜色
Linking 3 simple squares to data which includes required color
我有以下-我想要实现的是3个正方形,每个正方形连接到简单数据结构dta
中的不同成员。如何将每个方块的颜色与dta
中的字符串colr
联系起来?
//############# SQUARES ###################
function dsSquares() {
var dta = {
categ: ["N", "P", "B"],
colr: ["yellow", "pink", "blue"]
}
var basics = dsSquaresBasics();
var margin = basics.margin,
width = basics.width,
height = basics.height;
//Create SVG element
var SQsvg = d3.select("#threeSquares")
.append("svg:svg")
//.data(dta)
.attr({
"width": width + margin.left + margin.right,
"height": height + margin.top + margin.bottom,
id: "squaresArea"
});
var SQg = SQsvg
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
SQg.selectAll("rect")
.data(dta.categ)
.enter()
.append("rect")
.attr({
x: margin.left,
y: function(d, i) {
return i * 65
},
"width": width,
"height": 50,
//fill: 'green' //<<<<<WORKS OK
fill: dta.colr //<<<<<NOT WORKING
})
.on("click", up);
function up(d, i) {
//update bar chart when user selects a square
updateBarChart(d, "green");
console.log(d);
}
}
dsSquares();
以上是我第一个D3尝试的视觉效果的一部分,保存在这里:
https://plnkr.co/edit/Y5plUy?p =
预览请注意:我意识到上面的updateBarChart()
函数还没有完全工作,但这是拼图中的下一个块,所以我不需要帮助……
dta.colr
中的数据不与矩形绑定。一个更好的方法是将颜色与categ
一起定义在对象数组中。
如果不能改变你的数据结构,你可以根据它们的索引给矩形上色:
fill: function(d,i){ return dat.colr[i];}
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 包括用于facebook评论框的JavaScript SDK
- 高亮显示时编辑文本大小和颜色
- 使用jQuery动态添加表并在其中动态添加行
- 用与线条相同的颜色填充多折线图上的点
- 更改HTML按钮值的颜色,其中值来自调用Javascript的onclick
- 如何获取应用程序.js其中不包括压缩代码
- 在Rails中,如何通过单击其中一个页面上的按钮来更改三个独立页面上边框的颜色
- 构建一个简单的随机化器,其中包括一个点、一个下划线、字母 A 和字母 B
- 如何使用高图表创建列字符,其中每列都有不同的颜色
- PHP 更改图像中的颜色(包括底纹)
- Highcharts 图形默认系列填充颜色覆盖状态填充颜色(包括 jsfiddle)
- 使用jquery更改纯HTML Slider Thumb颜色(包括工作css)
- AJAX:发送字符串,其中包括&
- 链接3个简单的正方形数据,其中包括所需的颜色
- 点击网页打开window.open(),其中包括框架集,但窗口.关闭不工作的框架集
- 将表单元素转换为json并将其POST到服务器,其中包括一些作为一组参数
- 同一链接在一个页面中重复多次,单击其中一个会改变所有相同链接的颜色
- 关于构建happi .js应用程序的建议,其中包括使用bookshelf.js构建的模型
- 包括JavaScript文件会破坏我的背景颜色