2017-02-01 4 views
1

d3.js와 epoch를 사용하여 분산 형 차트를 그립니다. 차트의 원이되는 값은 로그 값을 기반으로하며 이로 인해 두 축이 모두 0 아래로 떨어집니다.어떻게 svg 차트의 축을 조작합니까?

var chart = $('#scatterchart').epoch({ type: 'scatter', data: scatterData, axes: ['bottom', 'left'], ticks: { right: 4, bottom: 4}, domain: [-1.4, 2], range: [-2,4], margins: { top: 10, right: 80, bottom: 60, left: 80 }, }); 

내가되도록 축 원의 위치를 ​​유지하지만, 조작하려는 :이 작업을 수행하는 방법에 대한 어떤 제안을 가지고

x(horisontal): 
-1 -> 0.5 
0 -> 1 
1 -> 2 
2 -> 4 

y(vertical): 
-2 -> 0.25 
-1 -> 0.5 
0 -> 1 
1 -> 2 
2 -> 4 
3 -> 8 
4 -> 16 

누구를?

+0

눈금 레이블을 바꾸는 것을 의미합니까 (-1은 .5가되고 0은 1이됩니다 ...)? – GuitarExtended

+0

@Anna 이것은 d3에서만 매우 쉽습니다 :'var myScale = d3.scalePow(). exponent (2)'. 그러나 Epoch 문서에 따르면 d3 규모의 유형을 설정할 수없는 것으로 보입니다. –

+0

@GuitarExtended, 정확히 그렇습니다. 지금 나는 curent 레이블을 숨겨서 원형에 그래프가 나타나고 -1에서 0.5로 레이블 값을 변환하는 방법을 찾고 싶습니다. –

답변

-1

나는 신기원에 대한 경험이 없습니다.

그러나 d3js에서 작동한다고 가정하면 두 저울의 도메인을 모두 변경하기 만하면됩니다.

데이터를 시각화하면 도메인 (데이터 용)과 범위 (화면상의 픽셀)로 작업하게됩니다. 음수 값을 지원하려면 [-2, 4] (y 축 예제의 경우)를 지원하도록 도메인을 조정해야합니다. 보너스로

일부 독서

domainsnegative values

0

나는 epoch.js과 경험이없고, 당신이 만들어 축을 조정할 수 있을지 모르겠어요. 그러나 데이터를 산점도 생성기로 보내기 전에 데이터를 변환하려고 할 수 있습니다.

newData = scatterData.map(function(d){return someTransformFuntion(d);}); 

을 그리고 (실제로, 당신의 규모) 그에 따라 축 입력 도메인을 적응 : scatterData가 배열 인 경우

, 당신은) (array.map 사용할 수 있습니다.

관련 문제