📜  如何在Android中创建群组条形图?(1)

📅  最后修改于: 2023-12-03 15:08:51.285000             🧑  作者: Mango

在Android中创建群组条形图

在Android开发中,显示数据的图表是非常常见的需求,群组条形图是其中的一种。本文将介绍如何使用MPAndroidChart库在Android中创建群组条形图。

步骤
1. 添加依赖

在app module的build.gradle文件中添加以下依赖:

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
2. 创建布局文件

创建一个布局文件用来显示群组条形图,示例:

<com.github.mikephil.charting.charts.BarChart
    android:id="@+id/bar_chart"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
3. 准备数据

在代码中准备好需要显示的数据,例如:

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);
4. 初始化BarChart

在代码中获取创建好的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);
5. 设置数据

将准备好的数据集合设置进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库创建群组条形图。通过上述步骤,我们很容易实现群组条形图的创建,满足数据可视化的需求。