MPAndroidChart x date value duplication problem

只愿长相守 提交于 2021-01-29 16:57:55

问题


I am implementing the function to display the change of exercise time by date as a graph.

But there was a problem.

Before I explain the problem, I will briefly explain my code.

When a date is input from the user, the date is stored in the database and output by date.

For example, when the user enters 2020/06/26, it is displayed as 06/26 on the graph.

Now I will explain the problem.

The x value of the graph is overlapping. 07/01 does not appear immediately after 06/30, but very far.

I will attach my code and execution result. enter image description here

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;
        }

    });

回答1:


Hard to tell from the code you provide. But most probably, the problem does not lie in the ValueFormatter, but in the actual x values you use. Having x values in the format yyMMdd ist most likely not what you want, because the difference between e.g. 2020-04-01 and 2020-04-02 is not the same as between 2020-03-31 and 2020-04-01, event if it should be exactly the same (1 day). You should use another representation for the x values, e.g. "days since 1970".

This still does not explain why 06-30 is displayed after 07-01 and even after 08-19, however. My guess is that your Entry list is not sorted properly in ascending order.



来源:https://stackoverflow.com/questions/62579206/mpandroidchart-x-date-value-duplication-problem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!