2012-05-26 8 views
5

xとyの値が固定されたグラフを作成できますか?私のxの値は60,90,120,180,250,375,500,750,1000のようですが、アンドロイドプロットは値の間の等しい距離に基づいて9つの異なる値を作成します。xの角度でAndroidプロットの固定値

Number[] timestamps = {60, 90, 120, 180, 250, 375, 500, 750, 1000}; 

私はmySimpleXYPlot.setDomainStep(XYStepMode.SUBDIVIDE、9)を使用しています。私は解決策がこのコマンドの周りにあると思うが、私はそれを行う方法を知らない。

enter image description here

フルコード:

mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot); 
     Number[] numSightings = {70, 63, 56, 49, 43, 37, 32, 27, 23}; 

     Number[] timestamps = { 
      60, 90, 120, 180, 250, 375, 500, 750, 1000 

     }; 

     // create our series from our array of nums: 
     XYSeries series2 = new SimpleXYSeries(
       Arrays.asList(timestamps), 
       Arrays.asList(numSightings), 
       "USA"); 


     mySimpleXYPlot.getGraphWidget().getGridBackgroundPaint().setColor(Color.WHITE); 
     mySimpleXYPlot.getGraphWidget().getGridLinePaint().setColor(Color.BLACK); 
     mySimpleXYPlot.getGraphWidget().getGridLinePaint().setPathEffect(new DashPathEffect(new float[]{1,1}, 1)); 
     mySimpleXYPlot.getGraphWidget().getDomainOriginLinePaint().setColor(Color.BLACK); 
     mySimpleXYPlot.getGraphWidget().getRangeOriginLinePaint().setColor(Color.BLACK); 

     mySimpleXYPlot.setBorderStyle(Plot.BorderStyle.SQUARE, null, null); 
     mySimpleXYPlot.getBorderPaint().setStrokeWidth(1); 
     mySimpleXYPlot.getBorderPaint().setAntiAlias(false); 
     mySimpleXYPlot.getBorderPaint().setColor(Color.WHITE); 

     // Create a formatter to use for drawing a series using LineAndPointRenderer: 
     LineAndPointFormatter series1Format = new LineAndPointFormatter(
       Color.rgb(0, 100, 0),     // line color 
       Color.rgb(0, 100, 0),     // point color 
       Color.rgb(100, 200, 0));    // fill color 


     // setup our line fill paint to be a slightly transparent gradient: 
     Paint lineFill = new Paint(); 
     lineFill.setAlpha(200); 
     lineFill.setShader(new LinearGradient(0, 0, 0, 250, Color.WHITE, Color.GREEN, Shader.TileMode.MIRROR)); 

     LineAndPointFormatter formatter = new LineAndPointFormatter(Color.rgb(0, 0,0), Color.BLUE, Color.RED); 
     formatter.setFillPaint(lineFill); 
     mySimpleXYPlot.getGraphWidget().setPaddingRight(2); 
     mySimpleXYPlot.addSeries(series2, formatter); 

     // draw a domain tick for each year: 
     mySimpleXYPlot.setDomainStep(XYStepMode.SUBDIVIDE, 9); 
     mySimpleXYPlot.setRangeBoundaries(-20,100, BoundaryMode.FIXED); 

     // customize our domain/range labels 
     mySimpleXYPlot.setDomainLabel("Frequency (Hz)"); 
     mySimpleXYPlot.setRangeLabel("Loud pressure (dB)"); 
     mySimpleXYPlot.getLegendWidget().setVisible(false); 

     // get rid of decimal points in our range labels: 
     mySimpleXYPlot.setRangeValueFormat(new DecimalFormat("0")); 

     //mySimpleXYPlot.setDomainValueFormat(new MyDateFormat()); 

     // by default, AndroidPlot displays developer guides to aid in laying out your plot. 
     // To get rid of them call disableAllMarkup(): 
     mySimpleXYPlot.disableAllMarkup(); 
+0

から?私はドメイン軸の日付と同じ問題があります。 – blackwolf

答えて

5

XYStepType.INCREMENT_BY_VALUE

このモードでは、原点の上方および下方値のあらゆる倍数のためのティックを作成します。 次のようにのは、クイックスタートの例を変更してみましょう:

mySimpleXYPlot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 1);

これは、すべての目に見えるドメイン値のために目盛りを描画するXYPlotを伝える(x)は、xはマイナスdomainOriginの係数がゼロである、またはより簡単にそれを置くためにdomainOriginから1ずつ増加する度に目盛りを描きます。今、私たちのプロットは次のようになります。

enter image description here

これを解決するための任意の成功androidplot reference

関連する問題