如何在Swing中绘制此图形?

时间:2012-02-03 07:07:08

标签: java swing jfreechart linegraph

如何使用Swing绘制这样的图形?我使用了JFreeChart库,但我不知道如何使用该库绘制这样的折线图?

graph

import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.*;

public class DrawGraph{

public void drawGraph(int[][] drawPoints) {
  XYSeries series = new XYSeries("Average Weight");
  for(int i=0;i<drawPoints.length;i++){
    for(int j=0;j<=1;j+=2){
        if(drawPoints[i][j]!=0){
            series.add(bla...bla...bla...);
        }
    }
  }

  XYDataset xyDataset = new XYSeriesCollection(series);
  JFreeChart chart = ChartFactory.createXYLineChart
  ("XYLine Chart using JFreeChart", "Age", "Weight",
 xyDataset, PlotOrientation.VERTICAL, true, true, false);
  ChartFrame frame1=new ChartFrame("XYLine Chart",chart);
  frame1.setVisible(true);
  frame1.setSize(300,300);
  }

}

我用这个绘制了图表但是没有工作......

2 个答案:

答案 0 :(得分:1)

看起来你在构建数据集时遇到了麻烦。您可以使用ChartFactory.createXYAreaChart()ChartFactory.createXYLineChart()

之类的方法
private static XYDataset createDataset() {
    XYSeriesCollection result = new XYSeriesCollection();
    XYSeries series = new XYSeries("Test");
    series.add(0, 2);
    // more points here
    series.add(10, 10);
    result.addSeries(series);
    return result;
}

另请参阅这些examples

顺便说一句,目前还不清楚你的画面中有什么重要,我无法理解顶部的无序轴。在我看来,更好的问题不是如何制作此图?而是如何才能最好地显示此数据?

答案 1 :(得分:0)

http://sourceforge.net/apps/trac/jung/wiki/JUNGManual

改用JUNG。它很容易用java编写。