我发现 d3js 非常有趣。所以我想我应该试一试。我对这个框架还很陌生,需要一些帮助。我有一个json 文件。这就是它的运行方式--:
["2511a51", [["mumbai",1,6], ["Baroda",2,7]]]
["2882bd9", [["mumbai",3,8], ["chennai", 2,9]]]
["1d3e1a2", [["mumbai",0,3],["Baroda",2,6], ["Delhi",7,1]]]
["1882b41", [["mumbai",10,9]]]
["1d4ffd8", [["chennai",2,5], ["mumbai", 5,9], ["Delhi",8,8]]]
这里,
- 2511a51 是会话 ID(忽略)
- 孟买、巴罗达、钦奈和德里!!!是印度城市。
- Mumbai=画红色矩形,baroda=棕色矩形,chennai=绿色矩形,delhi=蓝色矩形
我想要的是,如果一个 json 行有 a 和 b --> 那么应该绘制它们各自的彩色矩形,保持 c 和 d 为空。所以对于整个数组,我得到下面的输出。如图所示,
- 5 个会话 ID 表示 5 行。
- 第一行和第二行包括两个矩形,第三和第五行有 3 个矩形,第 4 行有 1 个矩形,每个城市都有各自的颜色和列
- 基于第二个值(例如第一行的 1 和 6)-->它们的颜色强度将取决于!!!数字越多,颜色越深!!!
我想以我得到这个的方式编写我的 javascript ---:
我的代码:
<!DOCTYPE html>
<html>
<head>
<title>demo-staticArray!!!</title>
</head>
<body>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script>
var SVG = d3.select("body").append("svg")
.attr("class","stage")
.attr("width",800)
.attr("height",600)
.style("background-color", "beige")
.style("margin-left","200");
var array= ["2511a51", [["a",1], ["b",2]]]
["2882bd9", [["a",3], ["c", 2]]]
["1d3e1a2", [["a",0],["b",2], ["d",7]]]
["1882b41", [["a",10]]]
["1d4ffd8", [["c",2], ["b", 5], ["d",8]]]
var RECT= SVG.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("width", 30)
.attr("height", 10)
.style("fill","red");//how do I provide conditions for fill-->a=red,b=brown,c=green,d=blue
//how do I manage them such that they are arranged in a manner shown in the image.
//I am unable to move ahead of this!!!!I am facing problem in iterations and conditions
</script>
</body>
</html>
如果可能,请提供一个小的工作样本!!!