2016-04-03 35 views
0

İki veri kümesini gösteren bir grafik oluşturdum. Bunlardan birini nokta olarak, diğerini satır olarak çizmeye çalışıyorum. ama çalışmıyor. enter image description hereJFreeChart kullanarak yalnızca bir veri kümesi satırlarla çizilecek nasıl yapılır?

burada ben grafiği oluşturmak benim kodudur:

private ChartPanel createChartPanel() { 
     JFreeChart chart = ChartFactory.createScatterPlot(
      "", "Longitude [deg]", "Latitude [deg]", createSampleData(), 
      PlotOrientation.VERTICAL, true, true, false); 
     XYPlot xyPlot = (XYPlot) chart.getPlot(); 
     XYLineAndShapeRenderer render = new XYLineAndShapeRenderer(true, true); 
      xyPlot.setRenderer(0, render); 

      XYLineAndShapeRenderer render2 = new XYLineAndShapeRenderer(false, true); 
      xyPlot.setRenderer(1, render2); 
     return new ChartPanel(chart){ 
      @Override 
      public Dimension getPreferredSize() { 
       return new Dimension(768, 576); 
      } 
     }; 
    } 

    private XYDataset createSampleData() { 
     XYSeriesCollection dataset = new XYSeriesCollection(); 
      XYSeries Line_end_points = new XYSeries("Line end points"); 
      Line_end_points.add(new XYDataItem(startP.getX(), startP.getY())); 
      Line_end_points.add(new XYDataItem(endP.getX(), endP.getY())); 
      dataset.addSeries(Line_end_points); 
     dataset.addSeries(pnts);  
     return dataset; 
    } 

i iki farklı oluşturucuların oluşturma görebileceğiniz gibi, ancak her iki veri setleri çizgiler olarak çizilen burada grafiğin bir resimdir. Neyi kaçırıyorum? herhangi bir yardım takdir edilecektir, teşekkür ederim.

+0

, sen _two_ veri kümelerini, her Oluşturucu için bir ihtiyaç; Lütfen gözden geçirilmiş yaklaşımınızı gösteren bir [mcve] eklemek için sorunuzu düzenleyin. – trashgod

cevap

0

benim sorunumu çözdü. ChartPanel() yönteminde kod bazı değiştirir: En azından

private ChartPanel createChartPanel() { 
     JFreeChart chart = ChartFactory.createScatterPlot(
      "", "Longitude [deg]", "Latitude [deg]", createSampleData(), 
      PlotOrientation.VERTICAL, true, true, false); 
     XYPlot xyPlot = (XYPlot) chart.getPlot(); 
      XYLineAndShapeRenderer render = new XYLineAndShapeRenderer(); 
      render.setSeriesLinesVisible(0, true); 
      render.setSeriesShapesVisible(0, true); 
      render.setSeriesLinesVisible(1, false); 
      render.setSeriesShapesVisible(1, true); 
      xyPlot.setRenderer(render); 
     return new ChartPanel(chart){ 
      @Override 
      public Dimension getPreferredSize() { 
       return new Dimension(768, 576); 
      } 
     }; 
    }