📅  最后修改于: 2023-12-03 15:08:51.285000             🧑  作者: Mango
在Android开发中,显示数据的图表是非常常见的需求,群组条形图是其中的一种。本文将介绍如何使用MPAndroidChart库在Android中创建群组条形图。
在app module的build.gradle文件中添加以下依赖:
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
创建一个布局文件用来显示群组条形图,示例:
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/bar_chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在代码中准备好需要显示的数据,例如:
List<BarEntry> entries1 = new ArrayList<>();
entries1.add(new BarEntry(1f, 2));
entries1.add(new BarEntry(2f, 3));
entries1.add(new BarEntry(3f, 4));
entries1.add(new BarEntry(4f, 5));
List<BarEntry> entries2 = new ArrayList<>();
entries2.add(new BarEntry(1f, 4));
entries2.add(new BarEntry(2f, 1));
entries2.add(new BarEntry(3f, 3));
entries2.add(new BarEntry(4f, 6));
BarDataSet dataSet1 = new BarDataSet(entries1, "数据1");
dataSet1.setColor(Color.BLUE);
BarDataSet dataSet2 = new BarDataSet(entries2, "数据2");
dataSet2.setColor(Color.RED);
List<IBarDataSet> dataSets = new ArrayList<>();
dataSets.add(dataSet1);
dataSets.add(dataSet2);
在代码中获取创建好的BarChart控件并进行初始化,例如:
BarChart barChart = findViewById(R.id.bar_chart);
barChart.setDrawBarShadow(false);
barChart.setDrawValueAboveBar(true);
barChart.getDescription().setEnabled(false);
barChart.setMaxVisibleValueCount(50);
barChart.setPinchZoom(false);
barChart.setDrawGridBackground(false);
XAxis xAxis = barChart.getXAxis();
xAxis.setGranularity(1f);
xAxis.setCenterAxisLabels(true);
YAxis leftAxis = barChart.getAxisLeft();
leftAxis.setAxisMinimum(0f);
YAxis rightAxis = barChart.getAxisRight();
rightAxis.setEnabled(false);
将准备好的数据集合设置进BarChart中,例如:
BarData data = new BarData(dataSets);
data.setBarWidth(0.4f); // 群组条形图中一组数据的宽度
barChart.setData(data);
barChart.groupBars(0, 0.08f, 0.03f); // 调整每组数据之间的间隔
barChart.invalidate(); // 刷新图表
完整的示例代码如下:
List<BarEntry> entries1 = new ArrayList<>();
entries1.add(new BarEntry(1f, 2));
entries1.add(new BarEntry(2f, 3));
entries1.add(new BarEntry(3f, 4));
entries1.add(new BarEntry(4f, 5));
List<BarEntry> entries2 = new ArrayList<>();
entries2.add(new BarEntry(1f, 4));
entries2.add(new BarEntry(2f, 1));
entries2.add(new BarEntry(3f, 3));
entries2.add(new BarEntry(4f, 6));
BarDataSet dataSet1 = new BarDataSet(entries1, "数据1");
dataSet1.setColor(Color.BLUE);
BarDataSet dataSet2 = new BarDataSet(entries2, "数据2");
dataSet2.setColor(Color.RED);
List<IBarDataSet> dataSets = new ArrayList<>();
dataSets.add(dataSet1);
dataSets.add(dataSet2);
BarChart barChart = findViewById(R.id.bar_chart);
barChart.setDrawBarShadow(false);
barChart.setDrawValueAboveBar(true);
barChart.getDescription().setEnabled(false);
barChart.setMaxVisibleValueCount(50);
barChart.setPinchZoom(false);
barChart.setDrawGridBackground(false);
XAxis xAxis = barChart.getXAxis();
xAxis.setGranularity(1f);
xAxis.setCenterAxisLabels(true);
YAxis leftAxis = barChart.getAxisLeft();
leftAxis.setAxisMinimum(0f);
YAxis rightAxis = barChart.getAxisRight();
rightAxis.setEnabled(false);
BarData data = new BarData(dataSets);
data.setBarWidth(0.4f);
barChart.setData(data);
barChart.groupBars(0, 0.08f, 0.03f);
barChart.invalidate();
本文介绍了如何在Android中使用MPAndroidChart库创建群组条形图。通过上述步骤,我们很容易实现群组条形图的创建,满足数据可视化的需求。