MPAndroidChart使用详解
概述
样例
特色设置
概述
MPAndoridChart提供了非常丰富的图表类型可供使用,如 BarChart、LineChart、PieChart、RadarChart
虽然不同图表实现不同,但是都遵循了相同的封装逻辑,每种图表涉及到的划分都是以下4个类的实体相互依赖来起作用。
核心类
XXXChart (BarChart)
XXXData (BarDat)
XXXDataSet (BarDatSet)
XXXEntry (BarEntry)
4个类之间的相互关系
XXXChart => XXXData => XXXDataSet => XXXEntry
XXXChart 是图表类(也就是实际绘出图表的类)
XXXData 是数据类(XXXChart 直接依赖的数据封装类,是一个总的数据类)
XXXDataSet 是数据封装类(XXXData 依赖的一个组的数据封装类,XXXData 可以接受一个到多个 XXXDataSet,可以设置数据的形态等
XXXEntry 则是数据单元()
格式设置类
YAxis、XAxis 是 XXXChart 的内部类,通过chart.getXAxis()方法来获取,可以设置X、Y的的显示内容,显示刻度,显示位置,标签颜色等
样例
BarChart
)
1、XML中引用BarChart
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/mp_workshop1_left"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2、配置数据(元数据点)
@BindView(R.id.mp_workshop1_left)
BarChart mLeftChart;
//坐标点的组
private List<BarEntry> mBarEntries=new ArrayList<BarEntry>();
private BarDataSet mBarDataSet;
private BarData mBarData;
public void intView(){
for(int i=0;i<10 ;i++){
mBarEntries.add(new BarEntry(i,i*10));
}
//将一组基本数据点封装到一个BarDataSet实例中,并设置标签
mBarDataSet=new BarDataSet(mBarEntries,"生产数据");
//设置mBarDataSet中这组Bar的颜色
mBarDataSet.setColor(Color.rgb(70,130,180));
//将设置好的BarDataSet实例封装到一个BarData实例中,
mBarData=new BarData(mBarDataSet);
//给BarChart设置BarData
mLeftChart.setData(mBarData);
//绘制
mLeftChart.invalidate();
}
3、设置X、Y轴格式
//从BarChart中获取XAxis、YAxis的实例
YAxis leftAxis = mChart.getAxisLeft();
YAxis rightAxis = mChart.getAxisRight();
XAxis xAxis = mChart.getXAxis();
//Y周起始位置为0
leftAxis.setStartAtZero(true);
rightAxis.setStartAtZero(true);
xAxis.setAvoidFirstLastClipping(true);
//X轴标签在下部
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//自定义设置X轴标签
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
if(value==1){
return "周一";
}
if(value==2){
return "周二";
}
if(value==3){
return "周三";
}
if(value==4){
return "周四";
}
if(value==5){
return "周五";
}
if(value==6){
return "周六";
}
if(value==6){
return "周日";
}
return "";
}
});