【问题标题】:MPAndroidChart adding and display bar chart labelMPAndroidChart 添加和显示条形图标签
【发布时间】:2016-08-25 10:39:20
【问题描述】:

刚开始使用MPAndroidChart 3.0.0 版测试版,我创建了一个可以在条形图中显示我的值的项目。我的问题是我在哪里添加和显示标签。 每个酒吧都应该有自己的标签,例如。底部的“烟道”、“奶酪”等。不确定这是什么功能,正在积极搜索和阅读文档/维基,但目前没有乐趣。

【问题讨论】:

    标签: android mpandroidchart


    【解决方案1】:

    根据您的偏好,您可以使用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 库版本中使用标签的替代方法。

    【讨论】:

    • 我无法获得 IAxisVueFormatter,这是在 lib 的版本 3 中吗?我在 gradle 中指定了 v3 beta。仅识别 AxisValueFormatter。
    • 是的,这是正确的类。不过,随着库的下一个版本,它将被重命名。
    • 谢谢,它现在完美运行。只需要转换 (BarData) 数据,因为我将 BarData 作为我的条形图适配器的变量并使用了 getDataSetByIndex(position)。
    • 使用v3.0.1 第三个参数不起作用:/
    • @JCarlos 根据javadocs,它仍然存在。你到底有什么问题?
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多