Home Articles

MPAndroidChart添加并显示条形图标签

Asked
Viewed 361 times
3

刚开始使用MPAndroidChart版本3.0.0测试版,我创建了一个可以在条形图中显示我的值的项目 . 我的问题是我在哪里添加和显示标签 . 每个酒吧都应该有自己的标签,例如 . 底部是"Flue","Cheese"等 . 不确定这是什么功能,我正在积极地搜索和阅读Docs / Wiki,但目前没有任何乐趣 .

1 Answer

  • 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 版本的标签的替代方法 .

Related