주메뉴 바로가기 본문 바로가기 하단 바로가기

고객지원

기술문의

차트 속성 관련 문의 드립니다..

  • 유광용
  • 2011.12.05
  • 조회수 2,108
JViews7.5를 사용하고 있습니다..
차트내에 백그라운드 이미지를 삽입하거나 백그라운드 색상에 그라데이션을
줄수 있는 방법을 알려주시면 고맙겠습니다..
그리고 기타 차트 그리드 및 Ycale Label, 눈금 간격 및 사이즈 변경등...
차트 Layout을 변경할수 있는 속성이 정리되어있는 샘플이 있으면 좀 부탁드리겠습니다..

댓글 1

  • 민경현2011-12-06
    안녕하세요.
    차트에 배경 효과를 설정하는 방법을 물어보셨습니다.
    이미지 설정이나 그라데이션 설정 모두 가능하고요, 아래 소스의 주석 처리 된 부분을 참고하시면 될 거 같습니다.
    JViews 차트 설치 경로 하위의 아래 경로에 가시면 차트에서 사용 가능한 속성 값을 설정할 수 있는 샘플이 있습니다.
    환경에 따라 해당 경로의 run.bat 나 run.sh 실행하시면 되며, 실행 후 차트가 보이지 않으시면 같은 경로의 build 실행 후 다시 해보시기 바랍니다.
    감사합니다.

    ------------------------ 샘플 경로 -------------------------
    C:\Program Files\IBM\ILOG\jviews-charts87\samples\customizer

    --------------------- 테스트 소스 코드 ----------------------
    import ilog.views.chart.IlvChart;
    import ilog.views.chart.IlvChartDecoration;
    import ilog.views.chart.IlvChartRenderer;
    import ilog.views.chart.IlvColor;
    import ilog.views.chart.IlvDataInterval;
    import ilog.views.chart.IlvStyle;
    import ilog.views.chart.data.IlvDefaultDataSet;
    import ilog.views.chart.data.IlvDefaultDataSource;
    import ilog.views.chart.graphic.IlvDataIndicator;
    import ilog.views.chart.util.IlvDoubleArray;
    import ilog.views.util.IlvProductUtil;

    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Paint;

    import javax.swing.ImageIcon;
    import javax.swing.JFrame;


    public class TestChart {
    private JFrame frame;
    private IlvChart chart;

    public TestChart() {
    IlvProductUtil
    .DeploymentLicenseRequired(IlvProductUtil.IBM_ILOG_JViews_Enterprise_Deployment);

    IlvDefaultDataSet [] dataSetValues = new IlvDefaultDataSet[1];
    dataSetValues[0] = new IlvDefaultDataSet("data");
    for(int i=0; i<5; i++) {
    dataSetValues[0].addData(i, Math.random()*10, String.valueOf(i));
    }
    IlvDefaultDataSource dataSource = new IlvDefaultDataSource(dataSetValues);
    chart = new IlvChart();
    chart.setDataSource(dataSource);
    chart.setRenderingType(IlvChartRenderer.STACKED_BAR);

    // [chart 배경 색 설정(Gradient)]
    // Paint bg = IlvColor.getGradient(IlvColor.VERTICAL_GRADIENT, new Color(193, 224, 255));
    // Paint bg = IlvColor.getGradient(IlvColor.HORIZONTAL_GRADIENT, new Color(193, 224, 255));
    // Paint bg = IlvColor.getGradient(IlvColor.UP_DIAGONAL_GRADIENT, new Color(193, 224, 255));
    // Paint bg = IlvColor.getGradient(IlvColor.DOWN_DIAGONAL_GRADIENT, new Color(193, 224, 255));
    // Paint bg = IlvColor.getGradient(IlvColor.VERTICAL_GRADIENT, new Color[]{new Color(143, 184, 255), new Color(193, 224, 255), new Color(143, 184, 255)});
    // chart.getChartArea().setPlotBackground(bg);

    // [chart 배경 색 설정(가로 체크무늬)]
    // try {
    // IlvDoubleArray yArray = chart.getYScale(0).getStepValues();
    // for(int i=1; i<yArray.size()-1; i=i+2) {
    // IlvDataInterval inter = new IlvDataInterval(yArray.get(i), yArray.get(i+1));
    // IlvDataIndicator weInd = new IlvDataIndicator(-2, inter,null);
    // weInd.setStyle(new IlvStyle(new Color(255, 255, 128), new Color(255, 255, 220)));
    // chart.addDecoration(weInd);
    // }
    // }catch(Exception e) {
    //
    // }

    // [chart 배경 색 설정(이미지)]
    // chart.addDecoration(new IlvChartDecoration() {
    // private static final long serialVersionUID = 1L;
    // @Override
    // public void draw(Graphics paramGraphics) {
    // Image image = new ImageIcon("filepath").getImage();
    // paramGraphics.drawImage(image, 0, 0, chart);
    // }
    // });


    frame = new JFrame();
    frame.add(chart);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(new Dimension(500, 500));
    frame.setVisible(true);
    }

    public static void main(String [] args) {
    new TestChart();
    }
    }
    아이콘삭제

댓글 입력