用JFreeChart绘制光滑曲线 (利用最小二乘法数学原理计算)
绘制图形:
代码:
FittingCurve.java
<pre name="code" class="java">package org.jevy;
import java.util.ArrayList;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class FittingCurve extends ApplicationFrame{
List<Double> equation = null;
//设置多项式的次数
int times = 2;
public FittingCurve(String title) {
super(title);
//使用最小二乘法计算拟合多项式中各项前的系数。
/*
请注意: 多项式曲线参数计算 与 Chart图表生成 是分开处理的。
多项式曲线参数计算: 负责计算多项式系数, 返回多项式系数List。
Chart图表生成: 仅仅负责按照给定的数据绘图。 比如对给定的点进行连线。
本实例中,光滑的曲线是用密度很高的点连线绘制出来的。 由于我们计算出了多项式的系数,所以我们让X轴数据按照很小的步长增大,针对每一个X值,使用多项式计算出Y值, 从而得出点众多的(x,y)组。 把这些(x, y)组成的点连线绘制出来,则显示出光滑的曲线。
XYSeries为JFreeChart绘图数据集, 用于绘制一组有关系的数据。 XYSeries对应于X,Y坐标轴数据集, 添加数据方式为: XYSeries s.add(x,y);
XYSeriesCollection 为XYSeries的