MPAndroidChart 是一个功能强大的开源 Android 图表库,支持多种常用的统计图表类型,并且可以高度自定义。本文将介绍如何使用 MPAndroidChart 绘制自定义图表。
准备工作
在开始之前,需要在应用的 build.gradle
文件中添加以下引用:
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
自定义柱状图
下面我们来演示一下如何自定义柱状图。
首先创建一个 BarChart
对象:
val barChart = findViewById<BarChart>(R.id.bar_chart)
接着设置图表属性:
// 拉伸最大值,使其能够拥有一定的空白区域
barChart.extraBottomOffset = 16f
barChart.setDrawGridBackground(false)
barChart.legend.isEnabled = false // 隐藏图例
barChart.axisRight.isEnabled = false // 隐藏右侧坐标轴
barChart.axisLeft.axisMinimum = 0f // 纵坐标最小值为 0
barChart.xAxis.position = XAxisPosition.BOTTOM // 将横坐标设置在底部
barChart.xAxis.setDrawGridLines(false) // 隐藏横向网格线
barChart.xAxis.granularity = 1f // 横坐标步幅为1
barChart.xAxis.valueFormatter = object : ValueFormatter() {
override fun getFormattedValue(value: Float): String {
return "第${value.toInt()}周" // 设置横坐标文本格式
}
}
barChart.description.isEnabled = true
barChart.description.text = ""
然后定义数据:
val maxWeek = 20 // 学期总周数
val barEntries = ArrayList<BarEntry>()
// 随机生成柱状图数据
for (i in 1..maxWeek) {
val count = Random.nextInt(10, 35) // 生成10到35之间的随机数
barEntries.add(BarEntry(i.toFloat(), count.toFloat()))
}
最后将数据设置给图表:
val barDataSet = BarDataSet(barEntries, "周末学习时间")
barDataSet.color = ContextCompat.getColor(this, R.color.blue)
barDataSet.valueTextSize = 14f
barDataSet.valueTextColor = ContextCompat.getColor(this, R.color.white)
barDataSet.setDrawValues(true)
barChart.data = BarData(barDataSet)
这样就完成了一个基本的柱状图绘制。如果需要进一步自定义,可以参阅 MPAndroidChart 文档。
自定义雷达图
下面我们来演示一下如何自定义雷达图。
首先创建一个 RadarChart
对象:
val radarChart = findViewById<RadarChart>(R.id.radar_chart)
接着设置图表属性:
radarChart.description.isEnabled = false
radarChart.legend.isEnabled = false
radarChart.setTouchEnabled(false)
radarChart.setDrawWeb(false)
radarChart.webLineWidth = 0.5f
radarChart.setNoDataText("暂无数据")
radarChart.setBackgroundColor(Color.TRANSPARENT)
radarChart.xAxis.isEnabled = false
radarChart.yAxis.isEnabled = false
然后定义数据:
val dataEntries = ArrayList<RadarEntry>()
dataEntries.add(RadarEntry(3f))
dataEntries.add(RadarEntry(4f))
dataEntries.add(RadarEntry(5f))
dataEntries.add(RadarEntry(6f))
dataEntries.add(RadarEntry(7f))
dataEntries.add(RadarEntry(8f))
最后将数据设置给图表:
val dataSet = RadarDataSet(dataEntries, "")
dataSet.color = ContextCompat.getColor(this, R.color.purple)
dataSet.fillColor = ContextCompat.getColor(this, R.color.purple_light)
val data = RadarData()
data.addDataSet(dataSet)
data.setDrawValues(false)
radarChart.data = data
radarChart.invalidate()
这样就完成了一个基本的雷达图绘制。
以上就是 MPAndroidChart 自定义图表绘制的简单示例。如果想了解更多关于 MPAndroidChart 的内容,可以查看官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MPAndroidChart 自定义图表绘制使用实例 - Python技术站