XY プロットの jfreechart で線、点 (または小さな円)、長方形、台形を描画する方法を知りたいです。それらのほとんどは、特定の座標から範囲ゼロ ベースラインまでです。次のようなルート検索方法を表す必要があります。
http://www2.lv.psu.edu/ojj/courses/cmpsc-201/201-images/bisect.jpg
または次のようなシンプソンのルール:
http://upload.wikimedia.org/wikipedia/commons/0/08/Simpson_rule.png
解決策を見つけてプロットするための関数は既にあり、特定の座標で形状を描画するだけで済みます。私は jfreechart とプロットが初めてで、これを行う方法を探していました。
私のプロットのコード:
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.plot.XYPlot;
public class Grafica1 {
JFreeChart grafica;
XYSeriesCollection datos=new XYSeriesCollection();
String titulo;
String etiquetax;
String etiquetay;
int cont=1;
public Grafica1(String t, String x, String y){
titulo=t;
etiquetax=x;
etiquetay=y;
grafica=ChartFactory.createXYLineChart(titulo, x, y, datos, PlotOrientation.VERTICAL, true, true, true);
XYPlot plot= (XYPlot) grafica.getPlot();
//plot.setDomainZeroBaselineVisible(true);
plot.setRangeZeroBaselineVisible(true);
}
public Grafica1(){
this("Sin título", "x", "y");
}
public void agregarGrafica(String id, double[] x, double[] y){
XYSeries s=new XYSeries("["+(cont++)+"] "+id);
int n=x.length;
for(int i=0;i<n;i++){
s.add(x[i], y[i]);
}
datos.addSeries(s);
}
public void crearGrafica(String id, double[] x, double[] y){
cont=1;
datos.removeAllSeries();
agregarGrafica(id, x, y);
}
public JPanel obtieneGrafica(){
return new ChartPanel(grafica);
}
}