如何使用 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 值转换为 Date
的 String
表示形式,则可以使用 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/