का एक उप सरणी मैं निम्नलिखित संरचना है:d3: वस्तुओं
[
{ 'length': 10, attributes: [1,2,3] },
{ 'length': 7, attributes: [1,3,4,5] },
{ 'length': 12, attributes: [3,5,7,9,10] },
]
and I am doing the following:
x = d3.scale.linear().domain([0, maxHeight]).range([50, w]),
y = d3.scale.linear().domain([0, maxHeight]).range([h, 20]);
z = d3.scale.linear().domain([0, maxHeight]).range([0, h - 20]);
var chart = svg.selectAll("g.chart")
.data(items)
.enter()
.append("svg:g")
.attr("class", "chart");
chart.append("svg:rect")
.attr("fill", 'darkblue')
.attr("class", 'data')
.attr("x", function(d, i) { return x(i+1); })
.attr("y", function(d, i) { return bottom - z(d['length']) + 15 })
.attr("width", 4)
.attr("height", function(d, i) { return z(d['length']) - z(d['min']); })
मुझे क्या करना चाहते हैं इन आयतों जो मेरे संरचना में विशेषताओं से मेल खाती है में से प्रत्येक पर मंडलियों को शामिल है। असल में, (एक 'आइटम' के लिए}, मैं कुछ इस तरह देखना चाहिए:
<g class="chart">
<rect fill="darkblue" class="data" x="626.1538461538462" y="15" width="6" height="530"></rect>
<circle cx="626.1538461538462" cy="(y1)" r="5" style="fill: #ffff00; stroke: #808080;"></circle>
<circle cx="626.1538461538462" cy="(y2)" r="5" style="fill: #ffff00; stroke: #808080;"></circle>
<circle cx="626.1538461538462" cy="(y3)" r="5" style="fill: #ffff00; stroke: #808080;"></circle>
</g>
केवल एक चीज मैं की विशेषताओं से अधिक पाशन और उन्हें तत्व द्वारा तत्व जोड़ रहा है लगता है कर सकते हैं:
for (z=0; z< 3; ++z)
{
chart.append("svg:circle")
.data(items[z]['attributes'])
.style("fill", 'yellow')
.style("stroke", "gray")
.attr("cx", function(d, i) { return x(i+1); })
.attr("cy", function(d, i)
{
console.log(d);
return bottom - 15;
})
.attr("r", 5);
}
वहाँ यह करने के लिए एक बेहतर तरीका है?
केवल एक ही I एसएसयू है कि सर्कल एक्स-अक्ष पर एक ही पंक्ति पर होना चाहिए। असल में इन सर्किलों को एक ही रेखा पर रखा जाना चाहिए (आयताकार के शीर्ष पर ढंका हुआ) – Paul
@ पॉल ने 'सीएक्स' प्रति प्रति '' रखने के दौरान उत्तर को अद्यतन किया। –
यह सही है, महान काम करता है! धन्यवाद! – Paul