2016-03-29 11 views
0

描画領域(JPanel)に座標をプロットするコードを書きました。ここに私のコードクラスがあります:散布図にスケールバーまたは軸を追加する方法は?

class POSCanvas extends JPanel { 
    private XYSeries pnts = new XYSeries("Position"); 

    public POSCanvas() { 
     final ChartPanel chartPanel = createDemoPanel(); 
     this.add(chartPanel, BorderLayout.CENTER); 
    } 

    private void update(double xnew, double ynew) { 
     pnts.add(new XYDataItem(xnew, ynew)); 
    } 

    private ChartPanel createDemoPanel() { 
     JFreeChart jfreechart = ChartFactory.createScatterPlot(
      "", "X", "Y", createSampleData(), 
      PlotOrientation.VERTICAL, true, true, false); 
     XYPlot xyPlot = (XYPlot) jfreechart.getPlot(); 
     XYItemRenderer renderer = xyPlot.getRenderer(); 
     NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis(); 
     int minX = (int)pnts.getMinX(); int maxX = (int)pnts.getMaxX(); 
     if (minX < maxX){domain.setRange(minX, maxX);} 
     domain.setTickUnit(new NumberTickUnit(1)); 
     NumberAxis range = (NumberAxis) xyPlot.getRangeAxis(); 
     range.setTickUnit(new NumberTickUnit(1)); 
     return new ChartPanel(jfreechart){ 
      @Override 
      public Dimension getPreferredSize() { 
       return new Dimension(640, 480); 
      } 
     }; 
    } 

    private XYDataset createSampleData() { 
     XYSeriesCollection xySeriesCollection = new XYSeriesCollection(); 
     xySeriesCollection.addSeries(pnts); 
     return xySeriesCollection; 
    } 
} 

問題は、私はX軸の範囲を追加できないようです。出力は次のとおりです。 enter image description here

私はdomain.setRange()メソッドを使用していますが、動作しません。どのようにそれを修正するための任意のアイデア?どんな助けでも感謝します。ありがとうございました。

答えて

2

ChartFactory.createScatterPlot()、試し「ドメイン軸のNumberAxi Sと、プロットとしてXYPlotインスタンスを使用して、範囲軸としてNumberAxis、レンダラとしてXYLineAndShapeRenderer」をいくつかの完全な例がhereであり、工場のsourceが配布に含まれています。

image

+0

私はJFreechartに切り替えました。 y軸は作成されますが、X軸は作成されません。それはどんな考えですか? –

+1

'domain'を変更しないとどうなりますか? [mcve]を使うとテストが簡単になります。 –

+0

あなたはそれが働いているようにそれ[見て](http://stackoverflow.com/q/36287510/230513);あなたは[あなた自身の質問に答えることができます](http://meta.stackoverflow.com/q/17463/163188)、[空のチェックマーク](http://meta.stackoverflow。 com/a/5235/163188)をご覧ください。 – trashgod

関連する問題