介绍
本篇文章给大家分享的是有关使用JFreeChart怎么绘制一个光滑的曲线,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
FittingCurve。java
package org.jevy;, import java.util.ArrayList, import 并不知道, 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 {, ,Listequation =,零,, ,//设置多项式的次数, ,int times =, 2,, , ,public FittingCurve (String 标题),{, ,超级(标题); ,//使用最小二乘法计算拟合多项式中各项前的系数只/*, 请注意:多项式曲线参数计算,与,图表图表生成,是分开处理的只 多项式曲线参数计算:,负责计算多项式系数,,返回多项式系数列表只; 图表图表生成:仅仅负责按照给定的数据绘图只比如对给定的点进行连线只 本才能实例中,光滑的曲线是用密度很高的点连线绘制出来的只由于我们计算出了多项式的系数,所以我们让X轴数据按照很小的步长增大,针对每一个X值,使用多项式计算出Y值,从而得出点众多的(X, Y)组只把这些(X, Y)组成的点连线绘制出来,则显示出光滑的曲线只 XYSeries为JFreeChart绘图数据集,,用于绘制一组有关系的数据只XYSeries对应于X, Y坐标轴数据集,,添加数据方式为:,XYSeries s.add (X, Y),, XYSeriesCollection 为XYSeries的集合,当需要在一个图上绘制多条曲线的时候,需要把多条曲线对应的XYSeries添加到XYSeriesCollection ,添加方法:dataset.addSeries (s1),, dataset.addSeries (s2),, */, ,//多项式的次数从高到低,该函数需要的参数:x轴数据& lt; List>, y轴数据& lt; List>,多项式的次数& lt; 2祝辞,=,,this.equation  this.getCurveEquation (this.getData () . get (0), this.getData () . get (1), this.times),, ,//生成Chart ,JFreeChart chart =, this.getChart (),, ,ChartPanel ChartPanel =, new ChartPanel(图表),, ,chartPanel.setPreferredSize (new java.awt.Dimension (500,, 270)),, ,chartPanel.setMouseZoomable(真,,假),, ,setContentPane (chartPanel);, }大敌; , ,public static  void main (String [], args), {, ,//TODO Auto-generated  method stub ,FittingCurve demo =, new FittingCurve (“XYFittingCurve");, ,demo.pack (),, ,RefineryUtilities.centerFrameOnScreen(演示),, ,demo.setVisible(真正的),, , }大敌; , ,//生成chart public JFreeChart  getChart () {, ,//获取X和Y轴数据集, ,XYDataset XYDataset =, this.getXYDataset (),, ,//创建用坐标表示的折线图, ,JFreeChart xyChart =, ChartFactory.createXYLineChart (, ,“二次多项式拟合光滑曲线“,“X轴“,,,Y轴,,,,,xydataset PlotOrientation.VERTICAL,,真的,,真的,,假),, ,//生成坐标点点的形状, ,XYPlot plot =, (XYPlot), xyChart.getPlot (),, , ,XYItemRenderer r =, plot.getRenderer (),, ,if (r instanceof  XYLineAndShapeRenderer), {, XYLineAndShapeRenderer 才能;renderer =, (XYLineAndShapeRenderer), r,, renderer.setBaseShapesVisible才能(假);//坐标点的形状是否可见, renderer.setBaseShapesFilled才能(假的),, ,,}, ,ValueAxis yAxis =, plot.getRangeAxis (),, ,yAxis.setLowerMargin; (2), ,return xyChart; }大敌; ,//数据集按照逻辑关系添加到对应的集合, ,public XYDataset  getXYDataset (), {, ,//预设数据点数据集, ,XYSeries s2 =, new XYSeries(“点点连线“),, ,(int i=0;, i 使用JFreeChart怎么绘制一个光滑的曲线