我花了很多时间但找不到答案。我有一个从 40 到 120 点的线条图形。每个点都有时间。我只想在 Xaxis 上显示时间为 0:00 或 12:00 的点。
combinedChart.setData(prepareHistoryHour(photo_data));
combinedChart.fitScreen();
combinedChart.getXAxis().setAxisMinimum(0);
combinedChart.getXAxis().setGranularity(1);
combinedChart.getXAxis().setGranularityEnabled(true);
combinedChart.getXAxis().setLabelCount(72);
combinedChart.getXAxis().setTextSize(14f);
combinedChart.setVisibleXRangeMaximum(72);
combinedChart.setMaxVisibleValueCount(700);
combinedChart.getLineData().setDrawValues(true);
combinedChart.getXAxis().setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
Log.d("WHS xaxis", String.valueOf(value));
long time=dc_forecastHourList.get((int)value).getDT_withOffset();
String s=new SimpleDateFormat("HH").format(new Date(time*1000L));
if (Integer.parseInt(s) ==0){
return new SimpleDateFormat("MMdd").format(new Date(time*1000L));
}
if (Integer.parseInt(s) %12==0){
return new SimpleDateFormat("HH").format(new Date(time*1000L))+":00";
}
return "";
}
});
填写条目
for(int i=0; i<dc_forecastHourList.size();i++){
entriesTemp.add(new Entry(i,Float.parseFloat((dc_forecastHourList.get(i).getTemp()))-temperature_correct));;
entriesPressure.add(new Entry(i,Float.parseFloat((dc_forecastHourList.get(i).getPressure()))-correctpressure));
entrBarWind_speed.add(new Entry(i,Float.parseFloat((dc_forecastHourList.get(i).getWind_speed()))+correctWind));
entrBarWind_dir.add(new Entry(i,Float.parseFloat((dc_forecastHourList.get(i).getWind_deg()))));
}
但是 ValueFormatter 并不是针对所有点都调用的。这是跳过不同间隔的调用..
日志:例如
D/WHS xaxis: 24.0
D/WHS xaxis: 27.0
D/WHS xaxis: 30.0
D/WHS xaxis: 33.0
D/WHS xaxis: 36.0
结果,我无法在 Xaxis 上显示正确的值。谢谢你的帮助!