2016-08-25 77 views
3

剛剛開始使用MPAndroidChart 3.0.0版測試版,我創建了一個可以在條形圖中顯示我的值的項目。我的問題是我在哪裏添加和顯示標籤。 每個酒吧應該有自己的標籤,例如。 「煙道」,「奶酪」等。不知道這是什麼功能,目前正在積極搜索和閱讀Docs/Wiki,但沒有喜悅。MPAndroidChart添加並顯示條形圖標籤

回答

4

根據自己的喜好,你可以使用一個Entrydata屬性存儲標籤,然後在IAxisValueFormatter實現寄回:

public class LabelValueFormatter implements IAxisValueFormatter { 
    private final DataSet mData; 

    public LabelValueFormatter(DataSet data) { 
     mData = data; 
    } 

    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 
     // return the entry's data which represents the label 
     return (String) mData.getEntryForXPos(value, DataSet.Rounding.CLOSEST).getData(); 
    } 
} 

這種方法可以讓你使用Entry構造函數(或BarEntry在這種情況下),添加標籤,它可以提高代碼的可讀性:

ArrayList<BarEntry> entries = new ArrayList<>(); 
for (int i = 0; i < length; i++) { 
    // retrieve x-value, y-value and label 
    entries.add(new BarEntry(x, y, label)); 
} 
BarDataSet dataSet = new BarDataSet(entries, "description"); 
BarData data = new BarData(dataSet); 
mBarChart.setData(data); 
mBarChart.getXAxis().setValueFormatter(new LabelValueFormatter(data)); 

也爲更多的檢查this answer信息和使用標籤的BarChart和新的3.0.0版本庫的替代方法。

+0

我不能得到IAxisVlueFormatter,這是在版本3的lib ?.我有在Gradle中指定的v3 beta。只有AxisValueFormatter可以識別。 – brucen

+0

是的,這是正確的課程。隨着庫的下一個版本,它將被重命名。 – TR4Android

+0

謝謝,它現在完美。只需要施加(BarData)數據,因爲我將BarData作爲我的變量添加到Bar Chart適配器並使用getDataSetByIndex(position)。 – brucen