想法是將DIV中的條形組合起來,並用一些邊距或填充分隔組合div。
var data = [4, 8, 15, 16, 23, 42];
var gData=[];
for(var i=0;i<data.length/2;i++){
gData[i]={
"before":data[i*2],
"after":data[i*2+1]
};
}
console.log(gData);
var x = d3.scale.linear()
.domain([0, d3.max(data)])
.range([0, 420]);
myBarsEnter=d3.select(".chart")
.selectAll("div.bars")
.data(gData).enter().append('div').attr('class','bargroup');
myBarsEnter.append('div')
.style("width", function(d) { return x(d.before) + "px"; })
.text(function(d) { return d.before; });
myBarsEnter.append('div')
.style("width", function(d) { return x(d.after) + "px"; })
.text(function(d) { return d.after; });
和更新的CSS是
.chart .bargroup{
margin-bottom:10px;
}
.chart .bargroup div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
您可以在下面的鏈接找到更新的代碼。
http://codepen.io/anon/pen/YqJpzK
你是什麼意思間距?你能提供所需效果的截圖嗎? – Aziz
您的意思是「酒吧4,酒吧8,空間,酒吧15,酒吧16,空間,酒吧23,酒吧42」? –
嗯,我的意思是「酒吧4,酒吧8,空間,酒吧15,酒吧16,空間,酒吧23,酒吧42」。 – user3837019