java - 如何在 LineChart MPAndroidChart 中使用自定义数据?

标签 java android android-studio mpandroidchart

如何使用 MPAndroidChart 将日期放入 LineChart 的 x 轴中? 现在我将日期(以毫秒为单位)转换为字符串,但是当我尝试将 is 放入图表中时,x 值不会显示。

        LineDataSet dataSet = new LineDataSet(entries, getString(R.string.NDVI_trend));
    LineData lineData = new LineData(dataSet);

    chart.setData(lineData);
    Description description = new Description();
    description.setText("");
    chart.setDescription(description);
    chart.getAxisRight().setEnabled(false);
    chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
    chart.getXAxis().setDrawGridLines(false);
    chart.getLegend().setEnabled(false);

    String[] dateString = new String[entries.size() +1];
    for (int i = 0; i < entries.size(); i++){
        dateString[i] = getDate((long)entries.get(i).getX(),"dd MMM yyyy");
    }

    IAxisValueFormatter axisValueFormatter = new IndexAxisValueFormatter(dateString);
    chart.getXAxis().setValueFormatter(axisValueFormatter);
    chart.invalidate();

getData 方法:

public static String getDate(long milliSeconds, String dateFormat)
{
    SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(milliSeconds);
    return formatter.format(calendar.getTime());
}

最佳答案

如果您知道如何将 float x 值转换为 DateString 表示形式,则可以使用 IAxisValueFormatter :

mChart.getXAxis().setValueFormatter(new IAxisValueFormatter() {
        private SimpleDateFormat mFormat = new SimpleDateFormat("dd MMM HH:mm");

        @Override
        public String getFormattedValue(float value, AxisBase axis) {

            long millis = (long) value;
            return mFormat.format(new Date(millis));
        }
    });
chart.getXAxis().setValueFormatter(axisValueFormatter);
chart.setGranularity(1.0f);
chart.setGranularityEnabled(true);

关于java - 如何在 LineChart MPAndroidChart 中使用自定义数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43856672/

相关文章:

android - 将Eclipse项目导入android studio后文件丢失

android - 没有缓存版本的 gradle

android - 错误 :Cause: com. android.sdklib.repository.FullRevision

java - 创建大型静态资源文件是否存在问题?

JavaMail 传输大型二进制 MIME 消息(rfc3030)

Android:调用onPause但不调用onStop的场景?

android - NumberFormatter 函数在德语语言环境下无法正常工作

android - 获得对 Genymotion 设备的根访问权限的最佳方法是什么?

java - Spring Maven : Where to place credential properties

java - Hybris 租户就像一个进程吗?