2016-07-28 2 views
0

나는 Google에 가려고했지만 아래 막대 차트를 수행하는 방법에 대한 답변을 찾지 못했습니다. JavaFX를 사용하여 월을 x 축에 연도별로 그룹화하는 차트를 만들 수 있습니까? 그렇다면 월과 연도가 모두 표시되는 경우 어떻게해야합니까?X 축에서 JavaFX 막대 차트로 월별 그룹화하는 방법?

참조 된 차트 :

Chart http://i67.tinypic.com/lhe6t.jpg

는 스택 막대를 무시하십시오. 저는 매월 한해를 반복하지 않고 x 축에 월과 일을 모두 얻는 것에 관심이 있습니다.

+0

는 [이 작동하지 않습니다 무엇 당신이 지금까지 시도] 후 인쇄 할 수없는 널 (null)을 추가 달라야합니다? 질문의 일부로 코드를 게시하십시오. – ManoDestra

+0

당신이 접근하는 방법은'Axis'를 하위 클래스 화하는 것입니다 (좀 더 구체적으로 하위 클래스'Axis '). Chart API는 이러한 유형의 사용자 정의 (imho)를 위해 잘 설계되지 않았으므로 쉬운 작업이 아니며이 포럼에 대한 질문은 너무 광범위합니다. 추상 메소드를 오버라이드하는 것뿐만 아니라,'layoutChildren()'메소드를 오버라이드 (override)해야 할 필요가있다. 설명서가 제한되어 있으므로 [소스 코드] (http://hg.openjdk.java.net/openjfx/8u60/rt/file/996511a322b7/modules/controls/src/main/java/javafx)를 참조해야합니다./scene/chart)를 호출한다. –

+0

@ManoDestra 어디서부터 시작해야할지 모르므로 아직 아무 것도 시도하지 않았습니다. – Hiltunea

답변

0

월 중 하나에 연도를 추가하기 만하면됩니다. 달은 내가 (http://whathaveyoutried.com) 일부

public void start(Stage stage) { 
    NumberAxis y = new NumberAxis(); 
    CategoryAxis x = new CategoryAxis(); 
    BarChart<String, Number> bc = new BarChart<>(x, y); 
    bc.getData().add(new XYChart.Series<>()); 
    for (int i = 0; i < 24; i++){ 
     int year = i/12; 
     String mon = (i % 12 + 1) + ""; 
     for (int j = 0; j < year; j++) mon += "\0";//needs to be different by year 
     bc.getData().get(0).getData().add(
       new XYChart.Data<>(mon.startsWith("6") 
         ? " "+mon + "\n" + (year + 2013) 
         : mon, Math.random())); 
    } 

    Scene scene = new Scene(bc,800,400); 
    stage.setScene(scene); 
    stage.show(); 
} 

enter image description here

관련 문제