0
자바 + rhino + evjs + d3을 통해 svg를 렌더링하려고합니다. 모든 것이 선형 스케일로 잘 작동합니다. 시간 척도에 대해서만 해결할 수없는 문제가 있습니다.d3 시간 척도는 NaN을 제공합니다.
자바 스크립트의 작은 조각을 확인하십시오 :
DATA는 코뿔소 스크립트 범위에서 자바 객체입니다function Scale_timed(f,domain,range){
var obj = this;
this.field = f;
// print (DATA.jsGetDomain(domain)[0] + "/" + DATA.jsGetDomain(domain)[1]);
// print (range[0] + "/" + range[1]);
this.scale = d3
.time.scale()
.range(range)
.domain(DATA.jsGetDomain(domain));
this.get = function(i) {
print("lala: " + DATA.jsGetPrimitive(obj.field,i) + " - " + (DATA.jsGetPrimitive(obj.field,i).getDate()) + " - " + obj.scale(DATA.jsGetPrimitive(obj.field,i)));
return obj.scale(DATA.jsGetPrimitive(obj.field,i));
};
}
. 결과는 scale 함수 입력 매개 변수가 Date임을 분명히 보여 주지만 저의 scale 함수에서 NaN을 얻습니다.
출력 :
lala: Tue Jan 04 00:00:00 CET 2011 - 4 - NaN
lala: Wed Jan 05 00:00:00 CET 2011 - 5 - NaN
lala: Thu Jan 06 00:00:00 CET 2011 - 6 - NaN
lala: Fri Jan 07 00:00:00 CET 2011 - 7 - NaN
lala: Mon Jan 10 00:00:00 CET 2011 - 10 - NaN
나는 내가 단지 D3 태그이 요청할 것입니다 ... 문제가 어딘가에 D3 규모 사용량 생각합니다.
편집 :이 아주 잘 작동합니다 :
function Scale_timed(f,dom,range){
var obj = this;
this.field = f;
// print (DATA.jsGetDomain(domain)[0].getDate() + "/" + DATA.jsGetDomain(domain)[1].getDate());
// print ("range: "+ range[0] + "/" + range[1]);
this.scale = d3
.scale.linear() //.time.scale()
.range(range)
.domain([DATA.jsGetDomain(dom)[0].getTime(), DATA.jsGetDomain(dom)[1].getTime()])
//.domain(DATA.jsGetDomain(dom))
.nice();
this.get = function(i) {
print("time: " + DATA.jsGetPrimitive(obj.field,i) + " - " + (DATA.jsGetPrimitive(obj.field,i).getDate()) + " - " + obj.scale(DATA.jsGetPrimitive(obj.field,i).getTime()));
return obj.scale(DATA.jsGetPrimitive(obj.field,i));
};
}
지금 내가 생각하는 그 코뿔소 문제, 어쩌면 Date.protype 기능이없는 ... 사실은 코뿔소의 문제에서
무엇이'range'입니까? 전달중인 값이 외부에있을 수 있습니다. –
@LarsKotthoff 범위는 다음과 같습니다. [0,650] – KIC
도메인이란 무엇입니까? –