2012-08-04 3 views
0

안녕하세요 다음 도메인 array=["Col 1", "2012", "total"]을 가지고 있고 스케일이 방법D3 축으로 문자열을 사용하여이

x = d3.scale.ordinal() 
     .domain(array) 
     .rangeRoundBands([0,width], .1); 

을 만들 내가 축이 방법을 전화 틱 여기에 설명 된대로 다시 그리기 할 때 데이터 스왑을 사용합니다. http://jsbin.com/ibewux/9/edit

안정적인 동작을 유지하는 유일한 방법은 도메인에 숫자 값을 지정하는 것입니다. 즉, 배열 = [0, 1, 2, 3, ...]

이 형식의 눈금은 어떻게 표시 할 수 있습니까 [ "Col 1", "2012", "total", ..., "any string" ] (즉, [0,1,2, ... N])을 사용하지 않고 데이터를 다시 그릴 때마다 데이터 스왑 (매번 다른 무작위 틱)을 피할 수 있습니까?

많은 감사

그것은 이미 axis 진드기가 domain values 있습니다 ordinal scales에 대한 사건
+0

"다시 그리기시 틱스 스왑"이란 무엇을 의미합니까? 문제를 나타내는 예제에 링크 할 수 있다면 도움이 될 것입니다. – mbostock

+0

http://jsbin.com/ibewux/9/edit – Gian

답변

2

. 다음과 같이 :

여기 규모의 도메인에 axis.tickValues 설정 중복입니다.

+0

답변 해 주셔서 감사합니다. jsbin은 http://jsbin.com/ibewux/9/edit에 링크되어 있습니다. 귀하의 조언에 따라 진드기는 바뀌지 않지만 데이터는 교환됩니다. 이걸로 내 머리를 잡지 못해. 감사. – Gian

+0

도메인에 숫자 값을 사용하면 모든 것이 작동합니다. 문자열로 이동하면 데이터가 다른 (그리고 임의의) 틱으로 그려집니다. – Gian

+0

개체 불변성 유지를 위해 [데이터 조인에 키 기능 사용] (http://bost.ocks.org/mike/constancy/)이 필요합니다. – mbostock

관련 문제