Using a CustomGridLine Class of guidelines to add

 

Chart FX 7 에서 제공하고 있는 CustomGridLine 를 통해 가이드 라인을 그릴 수 있다. 해당 가이드라인은 범례(Legend)에 추가 되지 않으므로 참조되기 바란다.

 

 

1. 샘플소스

 

 

    ChartServer sampleChart = new ChartServer(pageContext,request,response);

    sampleChart.getData().set(0, 0, 120.1);
    sampleChart.getData().set(0, 1, 160.2);
    sampleChart.getData().set(0, 2, 750.9);
    sampleChart.getData().set(0, 3, 110.4);

    // Y축 자릿수구분
    sampleChart.getAxisY().getLabelsFormat().setCustomFormat("###,###");

    // PointLabel
    sampleChart.getAllSeries().getPointLabels().setFormat("%v건");

    // Legend
    sampleChart.getLegendBox().setVisible(false); // 활성화 여부

    // 챠트 여백조절 및 사이즈
    sampleChart.getPlotAreaMargin().setTop(60);
    sampleChart.getPlotAreaMargin().setLeft(90);
    sampleChart.getPlotAreaMargin().setRight(90);
    sampleChart.getPlotAreaMargin().setBottom(80);
    sampleChart.setWidth(480);
    sampleChart.setHeight(386);

    // 기타설정
    sampleChart.getImageSettings().setQuality(100); // 이미지 퀄리티
    sampleChart.getImageSettings().setInteractive(false); // 상호작용 해제

    // 포인트 별 색상
    sampleChart.getSeries().get(0).setColor(new java.awt.Color(237, 132, 132));

    sampleChart.getAxisX().getGrids().getMajor().setVisible(false);
    sampleChart.getAxisY().getGrids().getMajor().setStyle(DashStyle.SOLID);

    // Chart style : LINES
    sampleChart.setAxesStyle(AxesStyle.MATH);
    sampleChart.getAllSeries().getLine().setWidth((short) 2.4); // 라인챠트 선 두께
    sampleChart.getAllSeries().getLine().setStyle(DashStyle.DASH);
    sampleChart.getAllSeries().setMarkerSize((short) 4); // Marker 사이즈
    sampleChart.getAllSeries().setMarkerShape(MarkerShape.RECT); // Marker 종류
    sampleChart.getAllSeries().setFillMode(FillMode.SOLID); // 채움타입

    sampleChart.getSeries().get(0).setGallery(Gallery.LINES);

 

    // 그리드라인 1
    CustomGridLine custom1 = new CustomGridLine();
    custom1.setValue(Double.parseDouble("590"));
    custom1.setColor(java.awt.Color.GREEN);
    custom1.setWidth(2);
    custom1.setStyle(DashStyle.DOT);
    custom1.setText(" 상한");
    custom1.setFont(new java.awt.Font("맑은 고딕",java.awt.Font.TRUETYPE_FONT, 12));
    custom1.setTextColor(java.awt.Color.BLACK);
    custom1.setOutsideText(true);
    custom1.setAlignment(StringAlignment.FAR);
    custom1.setLineAlignment(StringAlignment.CENTER);
    sampleChart.getAxisY().getCustomGridLines().add(custom1);

 

    // 그리드라인 2
    CustomGridLine custom2 = new CustomGridLine();
    custom2.setValue(Double.parseDouble("220"));
    custom2.setWidth(2);
    custom2.setColor(java.awt.Color.GREEN);
    custom2.setStyle(DashStyle.DOT);
    custom2.setText(" 하한");
    custom2.setFont(new java.awt.Font("맑은 고딕",java.awt.Font.TRUETYPE_FONT, 11));
    custom2.setTextColor(java.awt.Color.BLACK);
    custom2.setOutsideText(true);
    custom2.setAlignment(StringAlignment.FAR);
    custom2.setLineAlignment(StringAlignment.CENTER);
    sampleChart.getAxisY().getCustomGridLines().add(custom2);

    // 렌더링
    sampleChart.renderControl();

 

 

 

2. 결과

 

 

감사합니다 :)

 

Posted by 리트모스
:

Using a series of guidelines to add

 

시리즈를 이용하여 가이드 라인을 추가하겠다. Chart FX에서 제공하는 가이드라인과는 달리 시리즈를 이용하게 되면 범례(Legend)에 표시 되므로 유의하도록 한다. 기재된 값은 임의의 값이므로 참조로만 확인토록 한다.

 

 

1. 샘플소스

 

 

    ChartServer sampleChart = new ChartServer(pageContext,request,response);

 

    sampleChart.getData().set(0, 0, 430.2);
    sampleChart.getData().set(0, 1, 340.3);
    sampleChart.getData().set(0, 2, 670.5);
    sampleChart.getData().set(0, 3, 320.2);
    sampleChart.getData().set(1, 0, 560.6);
    sampleChart.getData().set(1, 1, 740.4);
    sampleChart.getData().set(1, 2, 120.2);
    sampleChart.getData().set(1, 3, 10.1);
    sampleChart.getData().set(2, 0, 450.6);
    sampleChart.getData().set(2, 1, 60.3);
    sampleChart.getData().set(2, 2, 560.2);
    sampleChart.getData().set(2, 3, 780.2);
    sampleChart.getData().set(3, 0, 120.1);
    sampleChart.getData().set(3, 1, 160.2);
    sampleChart.getData().set(3, 2, 750.9);
    sampleChart.getData().set(3, 3, 110.4);
    sampleChart.getData().set(4, 0, 1100.0);
    sampleChart.getData().set(4, 1, 1100.0);
    sampleChart.getData().set(4, 2, 1100.0);
    sampleChart.getData().set(4, 3, 1100.0);

 

    // Y축 자릿수구분
    sampleChart.getAxisY().getLabelsFormat().setCustomFormat("###,###");

    // PointLabel
    sampleChart.getAllSeries().getPointLabels().setFormat("%v건");

 

    // Legend
    sampleChart.getLegendBox().setVisible(false); // 활성화 여부

 

    // 챠트 여백조절 및 사이즈
    sampleChart.getPlotAreaMargin().setTop(60);
    sampleChart.getPlotAreaMargin().setLeft(90);
    sampleChart.getPlotAreaMargin().setRight(90);
    sampleChart.getPlotAreaMargin().setBottom(80);
    sampleChart.setWidth(480);
    sampleChart.setHeight(386);

    // 기타설정
    sampleChart.getImageSettings().setQuality(100); // 이미지 퀄리티
    sampleChart.getImageSettings().setInteractive(false); // 상호작용 해제

    // 포인트 별 색상
    sampleChart.getSeries().get(0).setColor(new java.awt.Color(237, 132, 132));
    sampleChart.getSeries().get(1).setColor(new java.awt.Color(115, 150, 243));
    sampleChart.getSeries().get(2).setColor(new java.awt.Color(199, 144, 220));
    sampleChart.getSeries().get(3).setColor(new java.awt.Color(175, 223, 132));
    sampleChart.getSeries().get(4).setColor(new java.awt.Color(217, 75, 75));

 

    // 그리드 스타일 변경

    sampleChart.getAxisX().getGrids().getMajor().setVisible(false);
    sampleChart.getAxisY().getGrids().getMajor().setStyle(DashStyle.SOLID);

 

    // Chart style : LINES
    sampleChart.setAxesStyle(AxesStyle.MATH);
    sampleChart.getAllSeries().getLine().setWidth((short) 2.4); // 라인 두께
    sampleChart.getAllSeries().getLine().setStyle(DashStyle.DASH);
    sampleChart.getAllSeries().setMarkerSize((short) 4); // Marker 사이즈
    sampleChart.getAllSeries().setMarkerShape(MarkerShape.RECT); // Marker 종류
    sampleChart.getAllSeries().setFillMode(FillMode.SOLID); // 채움타입

 

    // 시리즈별 갤러리 스타일

    sampleChart.getSeries().get(0).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(1).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(2).setGallery(Gallery.BAR);
    sampleChart.getSeries().get(3).setGallery(Gallery.LINES);
    sampleChart.getSeries().get(4).setGallery(Gallery.LINES);

 

    // Stacked 볼륨

    sampleChart.getSeries().get(0).setVolume((short) 32);
    sampleChart.getSeries().get(1).setVolume((short) 32);
    sampleChart.getSeries().get(2).setVolume((short) 32);

   

    // Stacked 여부
    sampleChart.getSeries().get(0).setStacked(true);
    sampleChart.getSeries().get(1).setStacked(true);
    sampleChart.getSeries().get(2).setStacked(true);

 

    // 시리즈를 이용한 가이드라인

    sampleChart.getSeries().get(4).getLine().setWidth((short) 2.4);
    sampleChart.getSeries().get(4).getLine().setStyle(DashStyle.DOT);
    sampleChart.getSeries().get(4).setMarkerShape(MarkerShape.NONE);

 

    // 시리즈를 이용한 가이드라인 라벨 설정
    sampleChart.getPoints().get(4, 3).getPointLabels().setVisible(true);

    sampleChart.getPoints().get(4, 3).getPointLabels().setAlignment(StringAlignment.NEAR);
    sampleChart.getPoints().get(4, 3).getPointLabels().setLineAlignment(StringAlignment.CENTER);

    // PointLabel : 라벨포인트 타입 설정
    sampleChart.getSeries().get(4).getPointLabels().setFormat(" 최소 %v건 ");

 

    // 렌더링
    sampleChart.renderControl();

 

 

 

2. 결과

 

 

감사합니다 :)

 

Posted by 리트모스
: