如何在MPAndroid图表中使用X-Values?

3

我已经使用 MPAndroid Charts 有一段时间了。今天在添加库的 grandle 依赖后,有些事情发生了改变。

 float YValues [] = {50, 30, 0, 60, 70};
 String [] xValues = {"Fifty", "Thirty", "Zero", "Sixty", "Seventy"};

 ArrayList<BarEntry> yData = new ArrayList<>();
        for(int i = 0; i < YValues.length; i ++)
            yData.add(new BarEntry(YValues[i], i));

        ArrayList<String> xData = new ArrayList<>();
        for(int i = 0; i < xValues.length; i ++)
            xData.add(xValues[i]);

        BarDataSet barDataSet = new BarDataSet(yData, "");
        barDataSet.setColors(ColorTemplate.COLORFUL_COLORS);
        BarData barData = new BarData(barDataSet);
        barChart.setData(barData);
        barChart.invalidate();

我的问题是我应该把xData变量放在哪里。最初,我使用这个语句 BarData barData = new BarData(xData, barDataSet); 但是这并没有起作用。我应该把xData变量放在哪里或者我做错了什么?

3个回答

5
在此库的早期版本中,确实存在这个构造函数。但在BarData类的当前版本中不存在该构造函数。尽管听起来很遗憾,但您可以通过更改gradle依赖项并使用我们熟悉的构造函数返回到早期版本。
有几个BarChart示例使用了更新的版本,但是它们要么根本没有X轴,要么就使用BarEntry设置整数值并使用自定义值格式化器进行格式化。也有可能我完全错过了某些东西。

谢谢,再次感谢。至少你理解了我的问题。我已经更改了Grandle以反映早期版本,并且它起作用了,但是我仍然担心以后可能需要这个库..有些事情可能会出错。 - Susan Awiti

0

我真的不确定你是如何实现你的代码的,但是添加数据集条目应该像这样。

    ArrayList<BarEntry> entries = new ArrayList<>();
    entries.add(new BarEntry(50f,0));
    entries.add(new BarEntry(30f, 1));
    entries.add(new BarEntry(0f, 2));
    entries.add(new BarEntry(60f, 3));
    entries.add(new BarEntry(70f, 4));

    BarDataSet dataset = new BarDataSet(entries, "");

    // creating labels
    ArrayList<String> labels = new ArrayList<String>();
    labels.add("fifty");
    labels.add("thirty");
    labels.add("zero");
    labels.add("sixty");
    labels.add("seventy");

    BarData data = new BarData(labels, dataset);

如果这个解决了你要找的问题,那么恭喜你。如果没有,也许你可以更好地解释一下。


你尝试使用最新的库了吗?BarData data = new BarData(lables, dataset)不起作用了。这意味着BarData构造函数的字符串已被删除为第一个参数。然而,这个可以工作:BarData bardata = new BarData(datasetObj),同样适用于PieData和其他情况.....好的,你做得很对,但是对于最新版本,这个东西不起作用。 - Susan Awiti
我认为我已经更好地解释了,现在你可以清楚明白地理解了。我已经使用了一段时间的MPAndroid Charts,但现在我必须找出如何解决这个问题才能使用它们。 - Susan Awiti
你没有回答这个问题。 - Karue Benson Karue

0
在新的MpAndroidChart BarData构造函数中进行了更改。如果您需要向xAxis添加标签,请使用以下代码。
//xAxis labels
final ArrayList<String> xLabel = new ArrayList<>();
    xLabel.add("day 1");
    xLabel.add("day 2");
    xLabel.add("day 3");
    xLabel.add("day 4");
    xLabel.add("day 5"); 


//Get xAxis from the barchart
XAxis xAxis = mChart.getXAxis();
xAxis.setValueFormatter(new IndexAxisValueFormatter(xVals));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接