AOS
[Kotlin] MpAndroidChart 사용하기 / 클릭하면 x축 label 출력
유랄라-
2022. 1. 5. 01:43
반응형
https://github.com/PhilJay/MPAndroidChart
GitHub - PhilJay/MPAndroidChart: A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubb
A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations. - GitHub - PhilJay/MPAndroidChart:...
github.com
1. build.gradle에 mpandroidchart 추가
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
}
2. 원하는 곳에 xml 추가
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. 코드
val lineChart: LineChart = binding.chart
//data 가져오기
val dateList = mutableListOf<String>()
val priceList = mutableListOf<String>()
it.forEach { element ->
dateList.add(element.date)
priceList.add(element.price)
}
val entries = ArrayList<Entry>()
for(i in 0 until priceList.size){
entries.add(Entry(i.toFloat(), priceList[i].toFloat()))
}
val labels = ArrayList<String>()
for(i in 0 until dateList.size){
labels.add(dateList[i])
}
val dataset= LineDataSet(entries, "")
lineChart.xAxis.valueFormatter=IndexAxisValueFormatter(labels)
//클릭시 x축 label 출력
lineChart.setOnChartValueSelectedListener(object: OnChartValueSelectedListener{
override fun onValueSelected(e: Entry, h: Highlight){
val xAxisLabel = e.x.let{
lineChart.xAxis.valueFormatter.getAxisLabel(it, lineChart.xAxis)
}
binding.test.text= xAxisLabel
}
override fun onNothingSelected() {
}
})
lineChart.getTransformer(YAxis.AxisDependency.LEFT)
lineChart.xAxis.position = XAxis.XAxisPosition.BOTTOM
val data = LineData(dataset)
lineChart.data = data
lineChart.invalidate()
반응형