2013-04-17 1 views
2

Android 앱을 Android 앱에서 구현했으며 0에서 10까지 이동하는 X 축 레이블을 제외하고 정상적으로 작동합니다. 1 대 1로 표시하고 싶습니다. 게다가 Y 축의 레이블이 나타나지 않습니다. 내가 사용AndroidPlot : 1에서 11까지의 도메인 레이블

코드 :

import java.text.DecimalFormat; 
import java.util.Arrays; 
import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 

import com.androidplot.series.XYSeries; 
import com.androidplot.xy.LineAndPointFormatter; 
import com.androidplot.xy.SimpleXYSeries; 
import com.androidplot.xy.XYPlot; 
import com.androidplot.xy.XYStepMode; 

public class Scatter extends Activity { 
    private XYPlot mySimpleXYPlot; 

    //declare new arrays 

    float[] one; 
    float[] two; 
    float[] three; 
    Number[] series1Numbers; 
    Number[] series2Numbers; 
    Number[] series3Numbers; 
    String chainringCount; 


    /** Called when the activity is first created. */ 
    @SuppressWarnings("deprecation") 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.scatter); 


     Bundle bundle = this.getIntent().getExtras(); 
     one = bundle.getFloatArray("one"); 
     two = bundle.getFloatArray("two"); 
     three = bundle.getFloatArray("three"); 
     chainringCount=bundle.getString("CC"); 



     if (Integer.parseInt(chainringCount)==1){ 
      series1Numbers = new Number[one.length]; 

      for (int a=0; a<one.length; a++){ 
       series1Numbers[a]=one[a]; 
      } 

      mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot); 
      mySimpleXYPlot.setDomainStep(XYStepMode.SUBDIVIDE,11); 
      mySimpleXYPlot.setDomainStep(XYStepMode.INCREMENT_BY_VAL,1); 
      mySimpleXYPlot.setDomainValueFormat(new DecimalFormat("#")); 
      mySimpleXYPlot.setTicksPerRangeLabel(13); 
      mySimpleXYPlot.disableAllMarkup(); 
      mySimpleXYPlot.getBackgroundPaint().setAlpha(0); 
      mySimpleXYPlot.getGraphWidget().getBackgroundPaint().setAlpha(0); 
      mySimpleXYPlot.getGraphWidget().getGridBackgroundPaint().setAlpha(0); 
      mySimpleXYPlot.setDomainLabel(getString(R.string.domainName)); 
      mySimpleXYPlot.setRangeLabel(getString(R.string.rangeName)); 

      XYSeries series1 = new SimpleXYSeries(Arrays.asList(series1Numbers), SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "#1"); 
      LineAndPointFormatter series1Format = new LineAndPointFormatter(Color.rgb(0, 200, 0), Color.rgb(0, 100, 0),null);         // fill color (none) 
      mySimpleXYPlot.addSeries(series1, series1Format); 

     }... 

androidplot

답변

2

당신은 당신이 원하는 라벨 인쇄를 만들 수있는 사용자 정의 포매터를 적용 할 수 있습니다. 귀하의 경우 다음과 같이 작동해야합니다.

plot.setDomainValueFormat(new NumberFormat() { 

      @Override 
      public StringBuffer format(double d, StringBuffer sb, FieldPosition fp) { 
       return sb.append((d + 1) + ""); // shortcut to convert d+1 into a String 
      } 

      // unused 
      @Override 
      public StringBuffer format(long l, StringBuffer stringBuffer, FieldPosition fieldPosition) { return null;} 

      // unused 
      @Override 
      public Number parse(String s, ParsePosition parsePosition) { return null;} 
}); 
+0

감사합니다. 이제는 산산조각이 훨씬 이해하기 쉽습니다. – Luis