I\'m trying to create simple XYSplineRenderer, but code only work if I write XYDotRenderer a = new XYDotRenderer(); or XYLineAndShapeRenderer a = new XYLineAndShapeRenderer(
I'm not sure what's wrong, but there's a working example below. I tend to choose small odd values for the precision; the default is 5
. The same code works with XYLineAndShapeRenderer
or
XYDotRenderer r = new XYDotRenderer();
r.setDotWidth(5);
r.setDotHeight(5);
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JFrame;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.data.xy.*;
public class Test {
public static final String Title = "f(x) = 2^x";
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
display();
}
});
}
private static void display() {
XYSeries series = new XYSeries(Title);
for (int i = 0; i <= 10; i++) {
series.add(i, Math.pow(2, i));
}
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
NumberAxis domain = new NumberAxis("x");
NumberAxis range = new NumberAxis("f(x)");
XYSplineRenderer r = new XYSplineRenderer(3);
XYPlot xyplot = new XYPlot(dataset, domain, range, r);
JFreeChart chart = new JFreeChart(xyplot);
ChartPanel chartPanel = new ChartPanel(chart){
@Override
public Dimension getPreferredSize() {
return new Dimension(640, 480);
}
};
JFrame frame = new JFrame(Title);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(chartPanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}