최신 ARC 도표 1과 - http://jsfiddle.net/NYEaX/699/ ***아크 차트 - 다양한 세그먼트 들여 쓰기/높이
나는 아크 차트의 세트를 개발하고 있어요.
는 ^이 내가 가지고있는 최신 버전입니다.
내 첫 번째 문제 - 새로운 데이터 집합이 들어 오면 애니메이션이 깜박 거리는 것입니다.
또한 세그먼트 당 내경/외경을 변경하는 데 관심이 있습니다.
난 그냥 다음 코드 나 응용 프로그램을 수정 한getArc: function(){
var that = this;
var arc = d3.svg.arc()
.innerRadius(function(d, i){
return that.radius;
})
.outerRadius(function(d){
var maxHeight = 100;
var ratio = (d.height/maxHeight * 100)+that.radius;
return ratio;
})
.startAngle(function(d, i){
return d.startAngle;
})
.endAngle(function(d, i){
return d.endAngle;
});
return arc;
}
의 i에서 계수를 제공한다.
이제 다양한 세그먼트에서 교대조를 만들었습니다.
이것은 내가 가진 최신 사례입니다. 여기
및
는 코드입니다 - 나는 해결책을 완료 startAngle로부터/endAngle를 통해 정확한 길이를 제공하기 위해 호 모두의 전체 길이를 얻는 방법을 확실입니다.setData: function(data, isSorted){
var diameter = 2 * Math.PI * this.radius;
var localData = new Array();
var displacement = 0;
var oldBatchLength = 0;
var totalSum = 0;
$.each(data, function(index, value) {
$.each(value.segments, function(ri, va) {
totalSum+= va.height;
});
});
$.each(data, function(index, value) {
var riseLevels = value.segments;
//var riseLevelCount = riseLevels.length;
//var arcBatchLength = 2*Math.PI;
//var arcPartition = arcBatchLength/riseLevelCount;
$.each(riseLevels, function(ri, value) {
if(oldBatchLength !=undefined){
displacement+=oldBatchLength;
}
var segmentValue = value.height;
//var ratio = value.height/totalSum;
var arcBatchLength = segmentValue;//ratio*2*Math.PI;
var arcPartition = arcBatchLength/totalSum;
var startAngle = (ri*arcPartition);
var endAngle = ((ri+1)*arcPartition);
if(index!=0){
startAngle+=displacement;
endAngle+=displacement;
}
riseLevels[ri]["startAngle"] = startAngle;
riseLevels[ri]["endAngle"] = endAngle;
riseLevels[ri]["index"] = ri;
oldBatchLength = arcBatchLength;
});
//oldBatchLength = arcBatchLength;
localData.push(riseLevels);
});
var finalArray = new Array();
$.each(localData, function(index, value) {
$.each(localData[index], function(i, v) {
finalArray.push(v);
});
});
console.log("finalArray", finalArray);
return finalArray;
}
깜박임은 "바운스"트윈 때문입니다. 그리고 이미 세그먼트별로 바깥 쪽 반지름을 변경하고있는 것 같습니다. –
@ Old Country. 귀하의 질문에 대한 더 많은 정보를 제공하는 답변을 작성하지 마십시오. 대신 질문을 수정하십시오 (편집 페이지 링크는 질문 하단에 있음). 사람들이 활동 목록에서 3 개의 답을 가진 질문을 볼 때 더 이상주의를 기울일 필요가 없다고 생각합니다. – AmeliaBR
나는 이것에 대한 cinemetric 기반의 애니메이션 차트 버전을 추가했습니다 - http://jsfiddle.net/NYEaX/137/ –