마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AChartEngine X 축에 value 값 말고 Text 데이터로 대체하는 법좀 알려주세요!

+1 추천

 

그림과 같이 AChartEngine API 를 사용하여 Bar형 차트를 만들고 있습니다.

다 잘되는데... X축에 0,1,2,3,4,5,6 이런식으로 들어가 있는 Value 값이 무슨 짓을 해도 빠지지가 않습니다 ㅠㅠ

어떤 옵션을 줘야 할지 도무지 모르겠습니다...

 

소스에서 

 

renderer.addXTextLabel(i+1, strArrActiX[i]);

 

라는 명령어로 X Text Label 을 지정은 했는데 Value가 안지워지니 계속 겹치네요.

renderer.clearXTextLabels(); 이걸로 지우고 젤 마지막에 renderer.addXTextLabel(i+1, strArrActiX[i]);

해줘도 숫자는 안지워지고... 대체 어떻게하면 숫자를 지울 수 있을까요;

 

 

아래는 소스입니다

 

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
CategorySeries series = new CategorySeries("");
        for(int k = 0; k < fArrActiBabyY.length; k++)
        {
	    series.add(fArrActiBabyY[k]);
	    renderer.addXTextLabel(k+1, strArrActiX[k]);
        }
	dataset.addSeries(series.toXYSeries());
					

	renderer.setXAxisMax(nCount+1);
	renderer.setXLabels(nCount+1);
			    	
	renderer.addXTextLabel(0, "");
	renderer.addXTextLabel(nCount + 1, "");
	renderer.getSeriesRendererAt(0).setDisplayChartValues(false);
				    
				    
				    
	GraphicalView gv = ChartFactory.getBarChartView(m_activityParent, dataset, renderer, Type.STACKED);
	m_layoutPopupContentTab_01_02.addView(gv);








protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
	    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
	    renderer.setAxisTitleTextSize(40);
	    renderer.setChartTitleTextSize(40);
	    renderer.setLabelsTextSize(40);
	    renderer.setLegendTextSize(40);
	    
	    renderer.setShowGridX(true);
	    renderer.setXAxisMin(0);
	    renderer.setYAxisMin(0);
	    renderer.setYAxisMax(5);
	    
	    renderer.setXLabelsColor(Color.BLACK);
	    renderer.setYLabelsColor(0, Color.BLACK);
		
	    renderer.setXLabelsAlign(Align.CENTER);
	    renderer.setXLabelsPadding(20);
	    renderer.setYLabelsAlign(Align.LEFT);
	    renderer.setPanEnabled(false, false);
	    renderer.setZoomEnabled(false, false);
	    
	    renderer.setZoomRate(5.0f);
	    renderer.setBarSpacing(0.5f);
	    
	    renderer.addYTextLabel(0, "입력안함");
	    renderer.addYTextLabel(1, "0% ~ 50%");
	    renderer.addYTextLabel(2, "50% ~ 70%");
	    renderer.addYTextLabel(3, "70% ~ 100%");
	    renderer.addYTextLabel(4, "100% 초과");
	    renderer.addYTextLabel(5, "");
	    
	    renderer.setBackgroundColor(Color.WHITE);
	    renderer.setGridColor(Color.parseColor("#c9c9c9"));
        renderer.setMarginsColor(Color.parseColor("#FFFFFF"));
	    
	    int length = colors.length;
	    for (int i = 0; i < length; i++) {
	      SimpleSeriesRenderer r = new SimpleSeriesRenderer();
	      r.setColor(colors[i]);
	      renderer.addSeriesRenderer(r);
	    }
	    return renderer;
	  }

 

맛탱 (290 포인트) 님이 2015년 3월 3일 질문

1개의 답변

+1 추천

으아...자문 자답입니다....ㅋㅋㅋ

renderer.setXLabels(0);

 

으로 주니까 되네요!

맛탱 (290 포인트) 님이 2015년 3월 3일 답변
...