[안드로이드] 막대 그래프 그리기 1 (Android Bar Graph - achartengine)
2013. 12. 27. 11:26ㆍPrograming/Android / Java
- 라이브러리 다운로드 (Download Achartengine Lib)
https://code.google.com/p/achartengine/ - 이클립스에서 안드로이드 프로젝트 생성 (Create Android Project)
<LinearLayout
android:id="@+id/llBody"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
</LinearLayout> - 프로젝트에 라이브러리 추가하기 (Add Lib in the project)
만약, libs 폴더가 없다면 만들어 주면 된다. - 그래프 LIB 사용 (Use Graph LIB)
// 표시할 수치값
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 14230, 12300, 14240, 15244, 15900, 19200,
22030, 21200, 19500, 15500, 12600, 14000 });
/** 그래프 출력을 위한 그래픽 속성 지정객체 */
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
// 상단 표시 제목과 글자 크기
renderer.setChartTitle("통화 순위");
renderer.setChartTitleTextSize(20);
// 분류에 대한 이름
String[] titles = new String[] { "통화량" };
// 항목을 표시하는데 사용될 색상값
int[] colors = new int[] { Color.YELLOW };
// 분류명 글자 크기 및 각 색상 지정
renderer.setLegendTextSize(15);
int length = colors.length;
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(colors[i]);
renderer.addSeriesRenderer(r);
}
// X,Y축 항목이름과 글자 크기
renderer.setXTitle("월");
renderer.setYTitle("판매량");
renderer.setAxisTitleTextSize(12);
// 수치값 글자 크기 / X축 최소,최대값 / Y축 최소,최대값
renderer.setLabelsTextSize(10);
renderer.setXAxisMin(0.5);
renderer.setXAxisMax(12.5);
renderer.setYAxisMin(0);
renderer.setYAxisMax(24000);
// 그래프 위에 값 표시하기
renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
renderer.getSeriesRendererAt(1).setDisplayChartValues(true);
renderer.getSeriesRendererAt(0).setChartValuesTextAlign(Align.RIGHT);
renderer.getSeriesRendererAt(1).setChartValuesTextAlign(Align.RIGHT);
renderer.getSeriesRendererAt(0).setChartValuesTextSize(20);
renderer.getSeriesRendererAt(1).setChartValuesTextSize(20);
// X,Y축 라인 색상
renderer.setAxesColor(Color.WHITE);
// 상단제목, X,Y축 제목, 수치값의 글자 색상
renderer.setLabelsColor(Color.CYAN);
// X축의 표시 간격
renderer.setXLabels(12);
// Y축의 표시 간격
renderer.setYLabels(5);
// X,Y축 정렬방향
renderer.setXLabelsAlign(Align.LEFT);
renderer.setYLabelsAlign(Align.LEFT);
// X,Y축 스크롤 여부 ON/OFF
renderer.setPanEnabled(false, false);
// ZOOM기능 ON/OFF
renderer.setZoomEnabled(false, false);
// ZOOM 비율
renderer.setZoomRate(1.0f);
// 막대간 간격
renderer.setBarSpacing(0.5f);
// 설정 정보 설정
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
for (int i = 0; i < titles.length; i++) {
CategorySeries series = new CategorySeries(titles[i]);
double[] v = values.get(i);
int seriesLength = v.length;
for (int k = 0; k < seriesLength; k++) {
series.add(v[k]);
}
dataset.addSeries(series.toXYSeries());
}
// 그래프 객체 생성
GraphicalView gv = ChartFactory.getBarChartView(this, dataset, renderer, Type.STACKED);
// 그래프를 LinearLayout에 추가
LinearLayout llBody = (LinearLayout) findViewById(R.id.llBody);
llBody.addView(gv); - 결과
해당 글은 "view-source:http://hoyanet.pe.kr/1977"의 내용을 따라 실습한 내용을 기록한 것입니다.
휴대폰 사용량을 이용한 인간관계 앱을 만들던 중 실습으로 진행하다 남기는 내용으로, 부족함이 있습니다.
이럼 양해해 주시고, 자료를 봐 주셨으면 감사하겠습니다.
'Programing > Android / Java' 카테고리의 다른 글
[안드로이드] 맵뷰 - T MAP API 이용하여 개발하기 2 (0) | 2013.12.30 |
---|---|
안드로이드 터치 이벤트 보내기 / 받기 (0) | 2013.12.30 |
[안드로이드] 막대 그래프 그리기 2 (Android Bar Graph - achartengine) (0) | 2013.12.30 |
[안드로이드/자바] 초를 분으로 변화 (second to day, hour, munute) (0) | 2013.12.28 |
오라클 ORA-12560 : TNS:프로토콜 어댑터 오류 (0) | 2013.12.27 |