2016-08-25 43 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

相关问题