在Android中绘制不同列数的分组条形图可以通过使用图表库来实现,例如MPAndroidChart。以下是一个基本的步骤:
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent" />
BarChart chart = findViewById(R.id.chart);
chart.setDrawBarShadow(false);
chart.setDrawValueAboveBar(true);
chart.getDescription().setEnabled(false);
chart.setPinchZoom(false);
chart.setDrawGridBackground(false);
ArrayList<BarEntry> entries1 = new ArrayList<>();
entries1.add(new BarEntry(0, 30));
entries1.add(new BarEntry(1, 40));
entries1.add(new BarEntry(2, 50));
ArrayList<BarEntry> entries2 = new ArrayList<>();
entries2.add(new BarEntry(0, 20));
entries2.add(new BarEntry(1, 25));
entries2.add(new BarEntry(2, 30));
entries2.add(new BarEntry(3, 35));
BarDataSet dataSet1 = new BarDataSet(entries1, "分组1");
dataSet1.setColor(Color.BLUE);
BarDataSet dataSet2 = new BarDataSet(entries2, "分组2");
dataSet2.setColor(Color.RED);
BarData data = new BarData(dataSet1, dataSet2);
data.setBarWidth(0.4f);
String[] labels = {"标签1", "标签2", "标签3", "标签4"};
XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new IndexAxisValueFormatter(labels));
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setGranularity(1f);
xAxis.setCenterAxisLabels(true);
xAxis.setAxisMinimum(0f);
xAxis.setAxisMaximum(data.getGroupWidth(0.4f, 0.08f) * labels.length);
YAxis yAxis = chart.getAxisLeft();
yAxis.setAxisMinimum(0f);
yAxis.setGranularity(1f);
chart.getAxisRight().setEnabled(false);
chart.setData(data);
chart.invalidate();
这样,你就可以在Android中绘制不同列数的分组条形图了。请注意,以上代码只是一个基本示例,你可以根据自己的需求进行进一步的定制和优化。
推荐的腾讯云相关产品:腾讯云移动分析(https://cloud.tencent.com/product/ma)可以帮助你分析和监控移动应用的数据,提供丰富的数据可视化功能,包括图表和报表等。
领取专属 10元无门槛券
手把手带您无忧上云