2013-11-25 3 views
1

날짜가 딤플 (또는 아마도 D3)으로 처리되는 방식에 대해 매우 혼란 스럽습니다.딤플 시간 형식 저글

내 문제는 두 가지 질문으로 나눌 수 있습니다

  1. 내 날짜 형식 %Y-%m-%d %H:%M:%S 내 csv 파일의 열로되어 있습니다. 그들을 데이트 오브젝트로 변환하기 위해, 저는 현재 "바닐라"d3에 있었던 것과 같은 루프를 사용합니다.

    data.forEach(function (d) { 
        var format = d3.time.format("%Y-%m-%d %H:%M:%S"); 
        d.Date = format.parse(d.Date); 
    }); 
    

    더 빠른 방법이 있나요? 어쩌면 timeField function? 또는 dateParseFormat? 내가 틀렸을 수도 있지만 그 기능은 도우미와 같이 날짜를 처리하는 것처럼 보입니다.

  2. 시간 개체를 제어하려는 주요 이유는 개체를 다시 포맷 할 수 있기 때문입니다. 설명서에 따르면 tickFormat function을 사용할 수 있음을 나타냅니다. 불행히도 나는 그것을 사용하지 못했습니다. 내 추측 :

    var x = myChart.addCategoryAxis("x", "Date");

    x.tickFormat(d3.time.format("%Y-%m")); // For example for a year-month format

x.tickFormat이

고마워, 함수 아니다 반환

Xavier

답변

3

시간 형식은 시간 축과 관련됩니다. 당신이 시간축을 사용하려는 경우 당신은 사용 루프가 필요하지 않습니다 :

myChart.addTimeAxis("x", "Date", "%Y-%m-%d %H:%M:%S", "%Y-%m"); 

여기서 "% Y- % M- % D % H는 : %의 M이 : % (S)가"당신의 입 " % Y- % m "이 출력 형식입니다. "x.tickFormat이 함수가 아닙니다"라는 오류의 원인은 :)이 아니라는 것입니다. 원하는 경우 속성으로 시간 축에 사용되는 tickFormat을 설정할 수 있지만 위의 팩토리 메소드를 사용하는 경우는 필요하지 않습니다 :

myTimeAxis.tickFormat = "%Y-%m"; 

그러나 이것은 단지 시간 축으로 작동합니다.

행동의 시간 축의 예는 여기에서 찾을 수 있습니다 :

+0

고마워요 존, 슈퍼 명확한를

존을하는 데 도움이

http://dimplejs.org/advanced_examples_viewer.html?id=advanced_time_axis

희망! – xav

+0

그렇기 때문에 라인/영역 차트에서는 완벽하게 작동하지만 막대 차트를 만들고 싶다면 addCategoryAxis를 사용하여 적절한 막대 너비를 얻어야합니다. 이 경우 루프를 피할 수 있습니까? .addCategoryAxis ("x", "Date", "% Y- % m- % d % H : % M : % S", "% B % d");':) – xav

+0

두렵습니다. 막대의 너비를 지정하려면 시간 축 (https://github.com/PMSI-AlignAlytics/dimple/wiki/dimple.axis#wiki-floatingBarWidth)에서 floatingBarWidth를 사용할 수 있습니다. 그렇지 않으면 뒤로 돌아갈 필요가 있습니다. 루프에 연결하고 카테고리 축을 사용하십시오. –