MapandroidChart 添加数据

MPAndroidChart adding data

构建图表时出现问题。 Studio 不接受此中的数据 形式。实际上问题仅在于月份的名称。没有它们,代码工作正常。 MPAndroidChart 版本 3。在官方示例中我什么都不懂)。 Studio says:Error:(46, 24) 错误:class BarData 中的构造函数 BarData 无法应用于给定类型;要求:IBarDataSet[] 找到:ArrayList、BarDataSet 原因:varargs 不匹配; ArrayList 无法转换为 IBarDataSet。请告诉我如何添加带有月份的字符串。谢谢。

    barChart= (BarChart) findViewById(R.id.bargraph);

    List<BarEntry> calls = new ArrayList<>();
    calls.add(new BarEntry(0, 9f));
    calls.add(new BarEntry(1, 3f));
    calls.add(new BarEntry(2, 5f));
    calls.add(new BarEntry(3, 2f));
    calls.add(new BarEntry(4, 6f));
    calls.add(new BarEntry(5, 12f));

    BarDataSet barDataSet = new BarDataSet(calls,"num");


    ArrayList<String> months = new ArrayList<>();
    months.add("Jan");
    months.add("Feb");
    months.add("Mar");
    months.add("Apr");
    months.add("May");
    months.add("June");


    BarData data;
    data = new BarData(months,barDataSet);


    data.setBarWidth(0.9f);
    barChart.setData(data);
    barChart.setFitBars(true);
    barChart.invalidate();

几天前,我也有同样的问题

ArrayList<String> months = new ArrayList<>();
months.add("Jan");
months.add("Feb");
months.add("Mar");
months.add("Apr");
months.add("May");
months.add("June");

更改为:

final HashMap<Integer,String>nuMap = new HashMap<>();
nuMap.put(0,"Jan");
nuMap.put(1,"Feb");
nuMap.put(2,"Mar");
nuMap.put(3,"Apr");
nuMap.put(4,"May");
nuMap.put(5,"June");

现在是 setValueFormatter

XAxis xAxis = yourchart.getXAxis();
    xAxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return nuMap.get((int)value);
        }

    });

new 没关系 你可以绘制 XAxis Label 的字!

好友使用版本 3.0.4 并按照以下示例操作:

    ArrayList<BarEntry>() barEntries = new ArrayList<BarEntry>();

    barEntries.add(new BarEntry(0, 1));
    barEntries.add(new BarEntry(1, 2));
    barEntries.add(new BarEntry(2, 4));
    barEntries.add(new BarEntry(3, 6));
    barEntries.add(new BarEntry(4, 5));
    barEntries.add(new BarEntry(5, 7));

    barDataSet = new BarDataSet(barEntries, "Contracts");
    barDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
    //        barDataSet.setColors(ColorTemplate.COLORFUL_COLORS);
    barDataSet.setColor(getColor("defaultYellow"));
    barDataSet.setHighlightEnabled(true);
    barDataSet.setHighLightColor(Color.RED);
    barDataSet.setValueTextSize(defaultValueTextSize);
    barDataSet.setValueTextColor(getColor("primaryDark"));

    BarData barData = new BarData(barDataSet);

    barChart.getDescription().setText("No. of Contracts signed in 6 months");
    barChart.getDescription().setTextSize(12);
    barChart.setDrawMarkers(true);
    barChart.setMarker(markerView(context));
    barChart.getAxisLeft().addLimitLine(lowerLimitLine(2,"Minimum",2,12,getColor("defaultOrange"),getColor("defaultOrange")));
    barChart.getAxisLeft().addLimitLine(upperLimitLine(5,"Target",2,12,getColor("defaultGreen"),getColor("defaultGreen")));
    barChart.getAxisLeft().setAxisMinimum(0);
    barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTH_SIDED);

ArrayList<String> labels = new ArrayList<String> ();

    labels.add( "JAN");
    labels.add( "FEB");
    labels.add( "MAR");
    labels.add( "APR");
    labels.add( "MAY");
    labels.add( "JUN");


    barChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
    barChart.animateY(1000);

    barChart.getXAxis().setGranularityEnabled(true);
    barChart.getXAxis().setGranularity(1.0f);
    barChart.getXAxis().setLabelCount(barDataSet.getEntryCount());

    barChart.setData(barData);