안드로이드 자바
[Java][Android] MPAndroidChart
teamnova
2022. 1. 26. 12:00
728x90
안드로이드에서 가장 많이 사용되는 차트라이브러리인 MPAndroidChart를 이용해 보려고 한다.
그 중 거미줄 모양의 RadarChart를 사용해 보겠습니다.
1. 해당 라이브러리를 추가해준다.
repositories { maven { url 'https://jitpack.io' } }
dependencies { implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' }
2. xml 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activities.MapSearchDetailActivity"
>
<com.github.mikephil.charting.charts.RadarChart
android:id="@+id/mapsearchdetail_radar_chart"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
3. java 코드
//xml
RadarChart radarChart;
radarChart = findViewById(R.id.mapsearchdetail_radar_chart);
//차트 데이터 생성
private ArrayList<RadarEntry> dataValue(){
ArrayList<RadarEntry> dataVals = new ArrayList<>();
dataVals.add(new RadarEntry(bigMartList.size()));
dataVals.add(new RadarEntry(gs24List.size()));
dataVals.add(new RadarEntry(schoolList.size()));
dataVals.add(new RadarEntry(academyList.size()));
dataVals.add(new RadarEntry(subwayList.size()));
dataVals.add(new RadarEntry(bankList.size()));
dataVals.add(new RadarEntry(hospitalList.size()));
dataVals.add(new RadarEntry(pharmacyList.size()));
dataVals.add(new RadarEntry(cafeList.size()));
return dataVals;
}
데이터 리스트를 만든다.
//차트생성
private void makeChart(){
RadarDataSet dataSet = new RadarDataSet(dataValue(), "DATA");
dataSet.setColor(Color.BLUE);
RadarData data = new RadarData();
data.addDataSet(dataSet);
String[] labels = {"대형마트", "편의점", "학교", "학원", "지하철", "은행", "병원", "약국", "카페"};
XAxis xAxis = radarChart.getXAxis();
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
radarChart.setData(data);
}
- dataSet 생성
- setColor
- label
- 차트에 setData
차트 예시 이미지
트에 setData