[안드로이드] 막대 그래프 그리기 2 (Android Bar Graph - achartengine)

2013. 12. 30. 12:03Programing/Android / Java

그렇다면, 여기서 세로 막대 그래프는 어떻게 그릴까 하는 의문점이 든다.

엄청난 구글링을 해봤지만 나오지 않았다.

근데... 결론 부터 이야기 하면 엄청 쉽웠네요;;;;;;ㅋ


Render를 설정해 줄 때 setOrientation API만 사용해 주면 됩니다.

 mRenderer.setOrientation(Orientation.VERTICAL);


VERTICAL(세로)로 할지, HORIZONTAL(가로)로 할지만 속성을 변경해 주면 

자유롭게 가로 / 세로 막대그래프를 그릴 수 있습니다.



아래를 예제 소스 드립니다.

http://stackoverflow.com/questions/19590595/achartengine-y-axis-grid-lines-are-not-showing-properly




//collection of multiple vales for one renderer or series
    XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 

    mRenderer.addSeriesRenderer(renderer);
    mRenderer.setChartTitle("Sales for " + customerCD);
    mRenderer.setXTitle("\n \n Item Codes");
    mRenderer.setAxisTitleTextSize(30);
    mRenderer.setChartTitleTextSize(30);
    mRenderer.setLabelsTextSize(20);
    mRenderer.setYTitle("\n\n\n\n\n\n\n Number of Orders");
    mRenderer.setLabelsColor(Color.BLACK);
    mRenderer.setZoomButtonsVisible(true);
    mRenderer.setShowLegend(true);
    mRenderer.setLegendTextSize(25);
    mRenderer.setShowGridX(true); // this will show the grid in graph
    mRenderer.setShowGridY(true);
    mRenderer.setAxesColor(Color.BLACK);
    mRenderer.setGridColor(Color.BLACK);
    mRenderer.setYLabelsColor(0, Color.BLACK);
    mRenderer.setXLabelsColor(Color.BLACK);
    // mRenderer.setAntialiasing(true);
    mRenderer.setBarSpacing(.5); // adding spacing between the line or
                                    // stacks
    mRenderer.setApplyBackgroundColor(true);
    mRenderer.setBackgroundColor(Color.WHITE);
    mRenderer.setMarginsColor(Color.WHITE);
    mRenderer.setXAxisMin(0);
    mRenderer.setXAxisMax(itemCount + 1);
    mRenderer.setXLabels(0);

    mRenderer.setYAxisMin(0);
    mRenderer.setYAxisMax(max+1);
    //right, top, left, bottom
    mRenderer.setMargins(new int[]{30,50,100,10});
    //
    mRenderer.setXLabelsPadding(10);
    mRenderer.setYLabelsPadding(20);

    for(int i = 0 ; i < ItemCD.length; i++){
        mRenderer.addXTextLabel(i+1, ItemCD[i]);
    }