简介
MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。
官方github
官方文档
基本使用
- 创建视图
两种方式-
.xml
中定义它
<com.github.mikephil.charting.charts.LineChart android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="match_parent" />
- java代码动态创建,并将声明的对象放到视图中
LineChart chart = new LineChart(Context);
-
- 添加数据
想要给图表设置数据,必须通过setData()
方法public void setData (ChartData data ){ ... }
ChartData
类里面封装了呈现期间所需图表的所有数据和信息,使用每一种图表需要使用其对应的子类
例如
:LineChart对应LineData
这时你会看到构造函数有以下方法,同时LineData
也有addDataSet()
方法
一个DataSet对象表示当前Chart的一种类型数据,它可以将Chart中加入不同的类型,其允许特定样式。public LineData(List<LineDataSet> sets) { ... } public LineData(LineDataSet...) { ... }
例如
:一个折线图,可能不光有当天的温度和湿度变化,还有前几天的变化
LineDataSet构造函数如下
List类型的Entry封装了图表的所有值,要向图表添加数据,需要将每个数据对象包装到public LineDataSet (List <Entry> entries,String label ){ ... }
Entry
对象,Entry
类表示单个数据
注意:mpAndroidChart不同版本有一定差异,方法参数会有一定的差异,总体思路基本一致,注意看方法的参数,和异常信息!!!
- 更新视图
使用invalidate()
方法刷新数据
如果是动态添加数据需要notifylineDataSet.notifyDataSetChanged(); lineData.notifyDataChanged(); lineChart.notifyDataSetChanged(); lineChart.invalidate();
手势交互
-
setTouchEnabled(boolean enabled)
:允许启用/禁用与图表的所有可能的触摸交互 -
setDragEnabled(boolean enabled)
:启用/禁用图表的拖动(平移) -
setScaleEnabled(boolean enabled)
:启用/禁用两个轴上的图表缩放 -
setScaleXEnabled(boolean enabled)
:启用/禁用x轴缩放 -
setScaleYEnabled(boolean enabled)
:启用/禁用y轴缩放 -
setPinchZoom(boolean enabled)
:如果设置为true,则启用缩放缩放。如果禁用,则可以单独缩放x轴和y轴 -
setDoubleTapToZoomEnabled(boolean enabled)
:将此设置为false以禁止通过双击来缩放图表
颜色设置
-
通过
DataSet
对象的setColor()
或setColors()
设置颜色,也可选择已经提供好的颜色集颜色集合在ColorTemplate
类中barDataSet.setColors(ColorTemplate.JOYFUL_COLORS);
网友评论