我正在使用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);


我想要像以下示例一样获取数据集:-

java - MPAndroidChart:如何创建分组的BarChart?-LMLPHP

谢谢!!

最佳答案

由于版本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

09-30 14:24