2016-04-03 13 views
0

私は2つのデータセットをプロットするグラフを作成しました。 私はそれらの1つをポイントとして、もう1つをラインとしてプロットしようとしています。 が動作していません。ここでグラフの画像です:ここ enter image description hereJFreeChartを使用して線でプロットするデータセットを1つだけにする方法はありますか?

は、私はチャートを生成する私のコードは次のとおりです。

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

あなたは私は2つの異なったレンダラーを作成していますが、両方のデータセットを線としてプロットされ見ることができるように。私は何が欠けていますか?何か助けていただければ幸いです。ありがとうございます。

+0

少なくとも、レンダラーごとに1つずつ、_two_個のデータセットが必要です。あなたの修正されたアプローチを示す[mcve]を含めるように質問を編集してください。 – trashgod

答えて

0

は私の問題を解決しました。

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); 
      } 
     }; 
    } 
関連する問題