java中有没有能够直接建立坐标系的类或方法

:D 需要建一个坐标系 并在坐标系上画出一元多项式的分布曲线 坐标系要有刻度 请问java中有没有能够直接建立坐标系的类或方法呢 ??谢谢:D

jfreechart.
下载相关jar包
给个例子:
[code="java"]package jfreeChar;

import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;

public class Test {
public static void simpleJFreeChar() {
String title = "空调2002年市场占有率";
// 数据源
DefaultPieDataset piedata = new DefaultPieDataset();
piedata.setValue("联想", 27.3);
piedata.setValue("长城", 12.2);
piedata.setValue("海尔", 5.5);
piedata.setValue("美的", 17.1);
piedata.setValue("松下", 9.0);
piedata.setValue("科龙", 19.0);

    // 创建jfreechart,都使用chartfactory来创建jfreechart,很标准的工厂设计模式
    JFreeChart chart = ChartFactory.createPieChart(title, piedata, true,
            true, true);
    // 设定图片标题
    chart.setTitle(new TextTitle(title, new Font("宋体", Font.ITALIC, 15)));
    // 设定背景
    chart.setBackgroundPaint(Color.white);
    // 饼图使用一个pieplot
    PiePlot pie = (PiePlot) chart.getPlot();
    // pie.setsectionlabeltype(PiePlot.name_and_percent_labels);
    // pie.setsectionlabeltype(PiePlot.name_and_value_labels);
    // 设定显示格式(名称加百分比或数值)
    // pie.set.setpercentformatstring("#,###0.0#%");
    // 设定百分比显示格式
    pie.setBackgroundPaint(Color.white);
    pie.setLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12));
    // 设定背景透明度(0-1.0之间)
    pie.setBackgroundAlpha(0.6f);
    // 设定前景透明度(0-1.0之间)
    pie.setForegroundAlpha(0.90f);
    try {
        // 第一个参数为文件名
        // 第二个参数质量
        // 第三个参数为哪个chart创建图片
        // 第四个宽度
        // 第五个高度
        ChartUtilities.saveChartAsJPEG(new File("d:/jfreechar.jpg"), 1f,chart, 600, 600);
    } catch (Exception e) {
        e.printStackTrace();
    }

}

// 四:创建曲线图
public static void charFree() {

    TimeSeries series1 = new TimeSeries("用友");
    for (int i = 1999; i < 2005; i++) {
        for (int mon = 0; mon < 12; mon++) {
            series1.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),
                    new Double(500 + Math.random() * 100)));
        }
    }

    TimeSeries series2 = new TimeSeries("金碟");
    for (int i = 1999; i < 2005; i++) {
        for (int mon = 0; mon < 12; mon++) {
            series2.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),
                    new Double(400 - Math.random() * 100)));
        }
    }

    TimeSeries series3 = new TimeSeries("东软");
    for (int i = 1999; i < 2005; i++) {
        for (int mon = 0; mon < 12; mon++) {                
            series3.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),
                    new Double(300 - Math.random() * 100)));
        }
    }

    // 时间曲线数据集合
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series3);
    dataset.addSeries(series2);
    dataset.addSeries(series1);

    // 曲线图y轴提示
    String range = "应收余额";
    // 曲线图标题
    String title = "趋势分析";
    // 曲线图x轴提示
    String domain = "月份走势";

    JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,
            range, dataset, true, true, false);

    // 曲线图自标题
    String subtitlestr = "2003财年分析";

    TextTitle subtitle = new TextTitle(subtitlestr, new Font("黑体",
            Font.BOLD, 12));
    chart.addSubtitle(subtitle);
    chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15)));
    try {
        ChartUtilities.saveChartAsJPEG(new File("d:/jfreechar.jpg"), 1f,chart, 600, 600);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    // 其实使用jfreechart创建图片很简单,不同的的图片类型区别在于设置数据集

// simpleJFreeChar();
charFree();
List list = new ArrayList();
for(int i=0;i<10;i++){
list.add(new Long((long) (Math.random()*100)));
}
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
// System.out.println("-------------------------------------------------------------");
java.util.Collections.sort(list);
for(int i=0;i<list.size();i++){
// System.out.println(list.get(i));
}
}
}
[/code]