【发布时间】:2016-08-25 10:39:20
【问题描述】:
刚开始使用MPAndroidChart 3.0.0 版测试版,我创建了一个可以在条形图中显示我的值的项目。我的问题是我在哪里添加和显示标签。 每个酒吧都应该有自己的标签,例如。底部的“烟道”、“奶酪”等。不确定这是什么功能,正在积极搜索和阅读文档/维基,但目前没有乐趣。
【问题讨论】:
刚开始使用MPAndroidChart 3.0.0 版测试版,我创建了一个可以在条形图中显示我的值的项目。我的问题是我在哪里添加和显示标签。 每个酒吧都应该有自己的标签,例如。底部的“烟道”、“奶酪”等。不确定这是什么功能,正在积极搜索和阅读文档/维基,但目前没有乐趣。
【问题讨论】:
根据您的偏好,您可以使用Entry 的data 属性来存储标签,然后在您的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 库版本中使用标签的替代方法。
【讨论】:
v3.0.1 第三个参数不起作用:/