2013-07-15 3 views
1

안드로이드 AChart 엔진의 제대로 막대 차트를 표시하고이 같은 막대 그래프 표시 할 방법 :내가 막대 차트를 보여 AChart 엔진을 사용하고

enter image description here

를하지만 이것으로 끝 : 를 enter image description here

매우 부드럽고 지난 4 시간 동안 올바른 형식을 지정하려고했지만 실패했습니다. 적절한 자습서를 인터넷에서 검색했지만 하나를 관리 할 수 ​​없습니다. 어떤 스 니펫을 포함시켜야합니까?

이 내 시련 코드입니다 : 내가 대신 CategorySeries를 구축, 당신은 XYSeries을 구축 할 것을 제안

public class BarGraph{ 

    public GraphicalView getView(Context context) 
    { 
     // Bar 1 

     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 

     CategorySeries ac = new CategorySeries("AC"); 
     CategorySeries pe = new CategorySeries("PE"); 
     CategorySeries wa = new CategorySeries("WA"); 
     CategorySeries tl = new CategorySeries("TL"); 
     CategorySeries ml = new CategorySeries("ML"); 
     CategorySeries ce = new CategorySeries("CE"); 
     CategorySeries re = new CategorySeries("RE"); 
     CategorySeries ot = new CategorySeries("OT"); 
     ac.add(291); 
     dataset.addSeries(ac.toXYSeries()); 
     pe.add(11); 
     dataset.addSeries(pe.toXYSeries()); 
     wa.add(204); 
     dataset.addSeries(ac.toXYSeries()); 
     tl.add(28); 
     dataset.addSeries(pe.toXYSeries()); 
     ml.add(0); 
     dataset.addSeries(ac.toXYSeries()); 
     ce.add(21); 
     dataset.addSeries(pe.toXYSeries()); 
     re.add(51); 
     dataset.addSeries(ac.toXYSeries()); 
     ot.add(4); 
     dataset.addSeries(pe.toXYSeries()); 


     XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 
     mRenderer.setChartTitle("Submission Statistics"); 
     mRenderer.setXTitle("Verdict Code"); 
     mRenderer.setYTitle("No. of Submissions"); 
     mRenderer.setAxesColor(Color.BLACK); 
     mRenderer.setLabelsColor(Color.BLACK); 
     mRenderer.setApplyBackgroundColor(true); 
     mRenderer.setBackgroundColor(Color.WHITE); 
     mRenderer.setMarginsColor(Color.WHITE); 
     mRenderer.setZoomEnabled(true); 
     mRenderer.setZoomButtonsVisible(true); 

     XYSeriesRenderer renderer = new XYSeriesRenderer(); 
     renderer.setColor(Color.parseColor("#00AA00")); 
     renderer.setDisplayChartValues(true); 
     renderer.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer2 = new XYSeriesRenderer(); 
     renderer2.setColor(Color.parseColor("#666600")); 
     renderer2.setDisplayChartValues(true); 
     renderer2.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer3 = new XYSeriesRenderer(); 
     renderer3.setColor(Color.parseColor("#FF0000")); 
     renderer3.setDisplayChartValues(true); 
     renderer3.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer4 = new XYSeriesRenderer(); 
     renderer4.setColor(Color.parseColor("#0000FF")); 
     renderer4.setDisplayChartValues(true); 
     renderer4.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer5 = new XYSeriesRenderer(); 
     renderer5.setColor(Color.parseColor("#6767D0")); 
     renderer5.setDisplayChartValues(true); 
     renderer5.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer6 = new XYSeriesRenderer(); 
     renderer6.setColor(Color.parseColor("#AAAA00")); 
     renderer6.setDisplayChartValues(true); 
     renderer6.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer7 = new XYSeriesRenderer(); 
     renderer7.setColor(Color.parseColor("#00AAAA")); 
     renderer7.setDisplayChartValues(true); 
     renderer7.setChartValuesSpacing((float) 0.5); 

     XYSeriesRenderer renderer8 = new XYSeriesRenderer(); 
     renderer8.setColor(Color.parseColor("#000000")); 
     renderer8.setDisplayChartValues(true); 
     renderer8.setChartValuesSpacing((float) 0.5); 


     mRenderer.addSeriesRenderer(renderer); 
     mRenderer.addSeriesRenderer(renderer2); 
     mRenderer.addSeriesRenderer(renderer3); 
     mRenderer.addSeriesRenderer(renderer4); 
     mRenderer.addSeriesRenderer(renderer5); 
     mRenderer.addSeriesRenderer(renderer6); 
     mRenderer.addSeriesRenderer(renderer7); 
     mRenderer.addSeriesRenderer(renderer8); 

     return ChartFactory.getBarChartView(context, dataset,mRenderer, Type.DEFAULT); 
    } 

} 

답변

1

. 그런 다음 첫 번째 시리즈에서 수행 : series.add(1, 291); 두 번째는 series.add(2, 11); 등등 될 것입니다.

+0

감사합니다. 좋아, 내가하려고하는 것은 내가 무엇을 얻을지 알려 줄 것이다 :) –

+0

당신의 제안을 따르고 나면, 그래프는 꽤 좋아 보입니다 :)하지만 나는 막대 너비를 늘릴 수 없습니다. 나는'mRenderer.setBarSpacing (-0.5); '을 사용했고 바의 폭을 약간 늘렸다. 그러나이 부정적인 가치는 어떻게 작용합니까? –

+0

일련의 항목이 하나 있기 때문에 mRenderer.setBarWidth (widthInPixels)를 사용할 수 있습니다. –

관련 문제