0

我想在带有 JFreechart 的叠加图中使用偏差渲染器。但我的问题是我无法弄清楚如何将轴更改为自定义轴。

这是我的其他情节:

public class OverlaidXYPlotDemo extends ApplicationFrame 
{

  final XYSeries series0 = new XYSeries("Graph0");
  final XYSeries series1 = new XYSeries("Graph1");
  final XYSeries series2 = new XYSeries("Graph2");
  final XYSeries series3 = new XYSeries("Graph3");

     public OverlaidXYPlotDemo(final String title) 
     {
       super(title);
       final JFreeChart chart = createOverlaidChart();
       final ChartPanel panel = new ChartPanel(chart, true, true, true, true, true);
       panel.setPreferredSize(new java.awt.Dimension(800, 600));
       chart.setBackgroundPaint(Color.white);

       JCheckBox chckbxCheck = new JCheckBox("CHECK");
       panel.add(chckbxCheck, BorderLayout.SOUTH);
    
       setContentPane(panel);
      }


     public void addElem0(double x, double y)
     {
       this.series0.add(x, y);
     }

     public void addElem1(double x, double y)
     {
       this.series1.add(x, y);
     }

     private IntervalXYDataset createDataset0() 
     {
       // create dataset 0...
       final XYSeriesCollection coll0 = new XYSeriesCollection(series0);
       return coll0;
      }

     private IntervalXYDataset createDataset1() 
     {
       // create dataset 1...
       final XYSeriesCollection coll1 = new XYSeriesCollection(series1);
       return coll1;
     }
     private JFreeChart createOverlaidChart() 
     {
      // Make the two axis
      final NumberAxis domainAxis = new NumberAxis("Speed (m / s)");
      final ValueAxis rangeAxis = new NumberAxis("Power (kw)");

      // create plot ...
      final IntervalXYDataset data0 = createDataset0();
      final XYItemRenderer renderer0 = new XYBarRenderer(0.20);
      // change "new XYBarRenderer(0.20)" to "StandardXYItemRenderer()" if you want to change  type of graph
     final XYPlot plot = new XYPlot(data0, domainAxis, rangeAxis, renderer0);
     // add a second dataset and renderer... 
     final IntervalXYDataset data1 = createDataset1();
     final XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(false, true); 
    // arguments of new XYLineAndShapeRenderer are to activate or deactivate the display of points or line. Set first argument to true if you want to draw lines between the points for e.g.
     plot.setDataset(1, data1);
     plot.setRenderer(1, renderer1);

     plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
     return new JFreeChart("Test", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    }
}

我想用我的偏差渲染器做这样的事情。 知道怎么做吗?:) 如果你想让我更精确,或者我会提供更多代码。

谢谢

4

0 回答 0