首页 > 解决方案 > MPAndroidChart x 日期值重复问题

问题描述

我正在实现将运动时间按日期的变化显示为图表的功能。

但有一个问题。

在解释问题之前,我将简要解释一下我的代码。

当用户输入日期时,该日期存储在数据库中并按日期输出。

例如,当用户输入 2020/06/26 时,在图表上显示为 06/26。

现在我将解释这个问题。

图的 x 值是重叠的。07/01 不会在 06/30 之后立即出现,而是很远。

我将附上我的代码和执行结果。在此处输入图像描述

xAxis.setValueFormatter(new ValueFormatter() {

        @Override
        public String getFormattedValue(float value) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyMMdd");
            Date date = null;
            try {
                date = simpleDateFormat.parse(Float.toString(value));
            } catch (ParseException e) {
                e.printStackTrace();
            }
            SimpleDateFormat newFormat = new SimpleDateFormat("MM/dd");
            String dateString = newFormat.format(date);
            return dateString;
        }

    });

标签: androidandroid-studiompandroidchart

解决方案


很难从您提供的代码中分辨出来。但最有可能的是,问题不在于 ValueFormatter,而在于您使用的实际 x 值。yyMMdd 格式的 x 值很可能不是您想要的,因为例如 2020-04-01 和 2020-04-02 之间的差异与 2020-03-31 和 2020-04-01 之间的差异不同,事件如果它应该完全相同(1天)。您应该对 x 值使用另一种表示形式,例如“自 1970 年以来的天数”。

然而,这仍然不能解释为什么在 07-01 之后甚至在 08-19 之后显示 06-30。我的猜测是您的条目列表未按升序正确排序。


推荐阅读