d3.js

2012-10-03 18 views
11

में एक आर्क बनाने के लिए मैं कैनवास डेटा विज़ुअलाइज़ेशन बनाने के लिए जावास्क्रिप्ट लाइब्रेरी d3.js (http://d3js.org/) का उपयोग कर रहा हूं। मैं एक चाप बनाने की कोशिश कर रहा हूं, लेकिन यह मेरी सरणी से डेटा पैरामीटर स्वीकार नहीं कर रहा है। क्या कोई जानता है कि मैं क्या गलत कर रहा हूं?d3.js

var chartConfig = { "canvasSize" : 800 } 

var radius = chartConfig.canvasSize/2; 
var pi = Math.PI; 

var vis = d3.select("#chart").append("svg") 
    .attr("width", radius * 2) 
    .attr("height", radius * 2) 
    .append("g") 
    .attr("transform", "translate(" + radius + "," + radius + ")"); 

var arcData = [ 
    {aS: 0, aE: 45,rI:radius/2,rO:radius} 
]; 
var arc = vis.selectAll("arc").data(arcData).enter().append("arc"); 
arc.attr("innerRadius", function(d){d.rI}).attr("outerRadius",function(d){d.rO}).attr("class","arc"); 

function degToRad(degrees){ 
    return degrees * (pi/180); 
} 

enter image description here

उत्तर

23

वहाँ एसवीजी में कोई arc तत्व है, आप उचित पथ तत्व परिभाषित करने की जरूरत: यह मेरा कोड है। सौभाग्य से ऐसा करने के लिए d3 सहायक कार्य है।

var arc = d3.svg.arc() 
    .innerRadius(50) 
    .outerRadius(70) 
    .startAngle(45 * (Math.PI/180)) //converting from degs to radians 
    .endAngle(3) //just radians 

vis.append("path") 
    .attr("d", arc) 
    .attr("transform", "translate(200,200)") 

http://jsfiddle.net/g0r9n090/ पर कार्य उदाहरण;

+0

यह arcData सरणी से उचित मान वापस करने के लिए काम करता है, लेकिन यह वास्तव में स्क्रीन पर चाप नहीं खींचता है। क्या कमी है? मैंने डोम पेड़ का एक स्क्रीनशॉट संलग्न किया है - आर्क नोड वहां है लेकिन कुछ भी दिखाई नहीं देता है। – mheavers

+0

इसके बारे में क्षमा करें, मैंने अभी तत्काल समस्या देखी है कि आप मूल्य वापस नहीं कर रहे थे। उस भाग को पूरी तरह याद किया जिसे आप 'आर्क' तत्व बनाने की कोशिश कर रहे थे। मैंने अपना जवाब एक चाप बनाने के उदाहरण के साथ अद्यतन किया है। – Bill

+4

FYI: d3.svg.arc() बदल गया है d3.arc() – luQ