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

고객지원

기술문의

jview chart 점진적 동적 차트 출력 방식

  • 유광용
  • 2011.11.14
  • 조회수 1,244
안녕하세요..
3년전에 광양제철소 포스코ICT에서 jview chart 7.5 버전을 사용하여 개발된
조업기술해석이라는 프로젝트를 운영중인 유 광용 입니다..
프로젝트 개발당시 방 효동 책임님께서 기술지원을 해주셨습니다..
운영을 하다가 고객분의 요구사항이 있어서 문의 드립니다..
현재 운영중인 프로젝트 차트 출력방식은 데이타를 IlvDefaultDataSet 클래스의
addData 메소드를 사용하여 일괄적으로 한번에 차트를 그리는 방식인데요..
동적으로 차트가 점차적으로 그려지게 하는 방법이 있는지 문의드립니다..
제 질문이 잘 이해되시지 않으시다면 아래에 참고 url의 왼쪽 chart type의 트리중
barChart의 bar를 클릭하시면 동적으로 그리는 유형의 차트가 그려집니다..
그걸 참고해주시면 고맙겠습니다..
최대한 빠른 답변 부탁드리겠습니다..

참고 url : http://demo.riamore.net/flashdemo/chart/index.html

댓글 1

  • 방효동2011-11-14
    아래 소스는 기능에 대한 예시입니다.
    참조해서 보완하시면 될 것 같아요.
    =============================================

    import java.awt.BorderLayout;
    import javax.swing.JFrame;

    import ilog.views.chart.IlvChart;
    import ilog.views.chart.data.IlvDataSource;
    import ilog.views.chart.data.IlvDefaultDataSet;
    import ilog.views.chart.data.IlvDefaultDataSource;
    import ilog.views.chart.renderer.IlvBarChartRenderer;



    public class BarChart extends JFrame {
    IlvDefaultDataSet dataSet1;
    double[] valuesY1 = {30, 8, 55, 91, 125, 53, 61, 98, 74, 61, 80, 128};
    float stepVal = 30;

    /**
    * 동적으로 차트가 그려집니다.
    */
    public void dynamicDataChanged() {
    for (float i=stepVal-1; i > 0; --i)
    setData(dataSet1, i);
    }


    /**
    * Sets new data to the specified data set.
    */
    public void setData(IlvDefaultDataSet dataSet, float flag)
    {
    double y = 0.;
    dataSet.startBatch();

    for (int i=0; i < dataSet.getDataCount(); ++i) {
    y = valuesY1[i] * (1f / flag);
    dataSet.setData(i,0,y);
    }
    dataSet.endBatch();

    try {
    Thread.sleep(100);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    public BarChart() {
    super("Basic Cartesian Chart");
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    IlvChart chart = new IlvChart();

    double[][] valuesY = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} };
    String[] xLabels = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
    String[] names = {"ds1"};

    chart.setOpaque(true);
    chart.setHeaderText("Anual Report");
    chart.getYAxis(0).setDataMax(150);
    IlvBarChartRenderer barRenderer1 = null;

    barRenderer1 = new IlvBarChartRenderer();
    IlvDataSource tempDataSource = new IlvDefaultDataSource(valuesY, -1, names, xLabels);

    barRenderer1.setDataSource(tempDataSource);
    chart.getXScale().setCategory(tempDataSource.getDataSet(0), false);
    chart.addRenderer(barRenderer1); // add Y Axis
    chart.setProjectorReversed(true);

    dataSet1 = (IlvDefaultDataSet)chart.getDataSource().getDataSet(0);

    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(chart, BorderLayout.CENTER);
    setSize(500,400);
    setVisible(true);

    dynamicDataChanged();

    }


    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub BarChart bar = new BarChart();

    }

    }

    아이콘삭제

댓글 입력