2016-07-10 23 views
3

我現在一直在使用MPAndroid圖表。今天,在爲圖書館添加grand depen依賴之後,很少有事情發生了變化。如何在MPAndroid圖表中使用X值?

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變量或我哪裏錯了?

回答

5

在此庫的早期版本中,此構造函數絕對存在。但它不在BarData類的current version中。儘管聽起來很可悲,但您可以通過更改Gradle依賴關係並使用我們所熟悉的構造函數來回到較早的版本。

有幾種BARCHART examples本使用的較新的版本,但是他們要麼根本不具有X軸,或者如果他們這樣做,它們都具有整數值使用BarEntry設置和使用定製值格式化器格式化。它也有可能是我完全錯過了一些東西。

+0

謝謝,再次感謝。至少你明白我的問題。我已經改變了grandle以反映早期版本,它的工作,但仍然恐怕以後我需要這個圖書館..有些東西可能會混亂。 –

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); 

試試這個,如果它解決了你要找的東西,那麼恭喜你,如果沒有的話。也許你可以更好地解釋。

+0

你試過用最新的庫嗎? BarData data = new BarData(lables,dataset)'不起作用。這意味着'BarData'構造函數字符串作爲第一個參數已被刪除。然而,這個工作是'BarData bardata = new BarData(datasetObj)'工作的很好,'PieData'和其他.....好的,你做得對,但是對於最新版本來說,事情是不工作 –

+0

我想我已經解釋得更好了,現在你可以把它弄清楚。我一直在使用MPAndroid圖表,但現在我不能使用它們,直到我想出如何解決這個問題 –

+0

你沒有回答問題 –

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)); 
相關問題