Code difference between jfreechart XYLineAndShaperanderer, XYDotRenderer and XYSplineRenderer?

后端 未结 1 1699
渐次进展
渐次进展 2020-12-12 02:25

I\'m trying to create simple XYSplineRenderer, but code only work if I write XYDotRenderer a = new XYDotRenderer(); or XYLineAndShapeRenderer a = new XYLineAndShapeRenderer(

相关标签:
1条回答
  • 2020-12-12 02:48

    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);
    

    image

    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);
        }
    }
    
    0 讨论(0)
提交回复
热议问题