Android 第三方框架MPAndroidChart-v3.1.0的简单使用
这里写目录标题
前言
文章内容主要是如何去用条形图、折线图、饼状图、水平条形图。
一些方法的的使用意思都是本人自己理解的仅供大家学习参考!
引入库
GitHub地址:https://github.com/PhilJay/MPAndroidChart
'com.github.PhilJay:MPAndroidChart:v3.1.0'
布局
<!--条形图-->
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barchart"
android:layout_width="match_parent"
android:layout_height="300dp" />
<!--折线图-->
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/linechart"
android:layout_width="match_parent"
android:layout_height="300dp" />
<!--饼状图-->
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/pieChart"
android:layout_width="match_parent"
android:layout_height="300dp" />
<!--水平条形图-->
<com.github.mikephil.charting.charts.HorizontalBarChart
android:id="@+id/Hbarchart"
android:layout_width="match_parent"
android:layout_height="300dp" />
初始化动画
Hbarchart.animateX(500); // 设置X轴的动画
linechart.animateXY(500,500);// 设置X轴和Y轴的动画
pieChart.animateXY(500,500);// 设置X轴和Y轴的动画
barchart.animateXY(500,500);// 设置X轴和Y轴的动画
条形图
代码
barchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); // 设置X显示在哪个位置
barchart.getAxisRight().setEnabled(false); // 隐藏右边的Y轴
barchart.getDescription().setEnabled(false); // 隐藏详细文字介绍
// 初始化数据
List<BarEntry> barEntries1 = new ArrayList<>();
List<BarEntry> barEntries2 = new ArrayList<>();
List<String> stringList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
barEntries1.add(new BarEntry(i, new Random().nextInt(100)));
// new BarEntry(位置, 值);
barEntries2.add(new BarEntry((float) (i+0.3), new Random().nextInt(100)));
stringList.add("测试" + i);
}
// 定义BarDataSet
BarDataSet barDataSet1 = new BarDataSet(barEntries1, "测试1");
BarDataSet barDataSet2 = new BarDataSet(barEntries2, "测试2");
// 设置BarDataSet显示的颜色
barDataSet1.setColor(getResources().getColor(R.color.red));
barDataSet2.setColor(getResources().getColor(R.color.blue));
// 定义BarData 将刚刚定义的BarDataSet传进去
BarData barData = new BarData(barDataSet1, barDataSet2);
// 设置显示的宽度
barData.setBarWidth(0.3f);
// 设置X轴上显示的值
barchart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
// 设置粒度 1的话就是默认X轴的值都显示
barchart.getXAxis().setGranularity(1);
// 传入BarData
barchart.setData(barData);
效果
折线图
代码
linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X显示在哪个位置
linechart.getAxisRight().setEnabled(false);// 隐藏右边的Y轴
linechart.getDescription().setEnabled(false);// 隐藏详细文字介绍
// 初始化数据
List<Entry> list = new ArrayList<>();
List<String> stringList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(new Entry(i, new Random().nextInt(100)));
stringList.add("测试" + i);
}
// 设置粒度 1的话就是默认X轴的值都显示
linechart.getXAxis().setGranularity(1);
// 设置X轴上显示的值
linechart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
// 定义LineDataSet
LineDataSet lineDataSet = new LineDataSet(list, "测试");
// 定义LineData 将lineDataSet传入
LineData lineData = new LineData(lineDataSet);
// 传入lineData
linechart.setData(lineData);
效果
饼状图
代码
pieChart.getDescription().setEnabled(false);// 隐藏详细文字介绍
// 初始化数据
List<PieEntry> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(new PieEntry(new Random().nextInt(100), "测试" + i));
}
// 定义PieDataSet
PieDataSet pieDataSet = new PieDataSet(list, "图例1");
List<Integer> colors = new ArrayList<>();
colors.add(getResources().getColor(R.color.red));
colors.add(getResources().getColor(R.color.blue));
colors.add(getResources().getColor(R.color.orang));
// 设置颜色
// 颜色设置按一对一对于设置,当颜色的数量小于显示数据的数量时将重复使用
pieDataSet.setColors(colors);
// 设置文字内容显示的位置(可以不设置)默认在图里显示文字
pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
// 定义PieData传入pieDataSet
PieData pieData = new PieData(pieDataSet);
// 设置数值后面带百分比格式
pieData.setValueFormatter(new PercentFormatter(pieChart));
// 使用百分比后的数值
pieChart.setUsePercentValues(true);
// 设置数值显示的颜色(默认黑色)
pieData.setValueTextColor(Color.BLACK);
// 设置数值显示的大小
pieData.setValueTextSize(17);
// 设置文字的颜色(默认白色)
pieChart.setEntryLabelColor(Color.BLACK);
// 传入pieData
pieChart.setData(pieData);
效果
水平条形图(和条形图的用法差不多)
水平条形图可以想成就是将一个条形图进行了顺时针90°的旋转形成的
代码
Hbarchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X显示在哪个位置
Hbarchart.getAxisRight().setEnabled(false);// 隐藏右边的Y轴
Hbarchart.getDescription().setEnabled(false);// 隐藏详细文字介绍
// 初始化数据
List<BarEntry> list = new ArrayList<>();
List<String> stringList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add(new BarEntry(i, new Random().nextInt(100)));
stringList.add("测试" + i);
}
// 定义BarDataSet
BarDataSet barDataSet = new BarDataSet(list, "测试");
// 设置BarDataSet显示的颜色
barDataSet.setColor(getResources().getColor(R.color.red));
// 定义BarData
BarData barData = new BarData(barDataSet);
// 设置X轴显示的文字内容
Hbarchart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(stringList));
// 设置粒度 1的话就是默认X轴的值都显示
Hbarchart.getXAxis().setGranularity(1);
// 传入BarData
Hbarchart.setData(barData);
效果
最后希望这篇文章能帮助到各位!!!