我正在使用MPAndroidChart创建分组的数据集,但此行显示的错误BarData data = new BarData(labels,dataSets );
是Unable to resolve constructor,BarData(java.util.ArrayList)<java.lang.String>,java.util.ArrayList<com.github.mikephil.charting.data.BarDataSet;>
我也已强制转换IBarDataSet
然后应用程序正在获取Unfortunately Stopped
。我使用了依赖compile 'com.github.PhilJay:MPAndroidChart:v2.2.4'
。有人请帮助我!
//create BarEntry for group 1
ArrayList<BarEntry> group1 = new ArrayList<>();
group1.add(new BarEntry(4f, 0));
group1.add(new BarEntry(8f, 1));
group1.add(new BarEntry(6f, 2));
group1.add(new BarEntry(12f, 3));
group1.add(new BarEntry(18f, 4));
group1.add(new BarEntry(9f, 5));
// create BarEntry for group 2
ArrayList<BarEntry> group2 = new ArrayList<>();
group2.add(new BarEntry(6f, 0));
group2.add(new BarEntry(7f, 1));
group2.add(new BarEntry(8f, 2));
group2.add(new BarEntry(12f, 3));
group2.add(new BarEntry(15f, 4));
group2.add(new BarEntry(10f, 5));
// creating dataset for group1
BarDataSet barDataSet1 = new BarDataSet(group1, "Brand 1");
barDataSet1.setColors(ColorTemplate.COLORFUL_COLORS);
// creating dataset for group2
BarDataSet barDataSet2 = new BarDataSet(group2, "Brand 2");
barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS);
// combined all dataset into an arraylist
ArrayList<BarDataSet> dataSets = new ArrayList<>();
dataSets.add(barDataSet1);
dataSets.add(barDataSet2);
ArrayList<String> labels = new ArrayList<>();
labels.add("JAN");
labels.add("FEB");
labels.add("MAR");
labels.add("APR");
labels.add("MAY");
labels.add("JUN");
BarData data = new BarData(labels,dataSets );// initialize the Bardata with argument labels and dataSet
barChartGroup.setData(data);
我想要像以下示例一样获取数据集:-
谢谢!!
最佳答案
由于版本v3.0.0带来了与分组的BarChart
绘图有关的重大更改,因此您应该修改依赖项以获取最新版本。
话虽如此,如何为数据组定义BarData
?根据官方Wiki中的example for "Grouped BarChart",您可以这样操作:
BarData data = new BarData(barDataSet1, barDataSet2 );
barChartGroup.setData(data);
该示例还说明了如何设置钢筋宽度和钢筋/钢筋组之间的间距。
顺便说一句,
MPandroidChart
依赖于您对条目进行排序。未排序的列表可能会也可能不会正确绘制。除此之外,至少在示例中,两组条目具有相同的x值集,因此,最好填写缺失的值。关于标签:目前似乎无法像您一样设置标签。有关对x轴使用自定义
ValueFormatter
的解决方法,请参见此SO post by TR4Android。