Я создаю 60 DataPoint (за каждую минуту в часе) и показываю их на графике.Установите 7 меток для оси х.Ярлыки с датой.
Самая левая метка и крайняя правая метка не совпадают с началом и концом оси x.На этом снимке экрана показаны несоответствия:
Код:
private void updateGraph(){
DataPoint[] dataPoints = new DataPoint[mCurrencyStampList.size()];
int i = 0;
Double minY = null;
Double maxY = 0D;
for(CurrencyStamp stamp : mCurrencyStampList){
dataPoints[i] = new DataPoint(stamp.getDate(), stamp.getClose());
if(maxY < stamp.getClose()){
maxY = stamp.getClose().doubleValue();
}
if(minY == null || minY > stamp.getClose()){
minY = stamp.getClose().doubleValue();
}
i++;
}
LineGraphSeries<DataPoint> points = new LineGraphSeries<>(dataPoints);
mGraphView.addSeries(points);
DateFormat dateFormat = android.text.format.DateFormat.getTimeFormat(getContext());
mGraphView.getGridLabelRenderer().setLabelFormatter(new DateAsXAxisLabelFormatter(getActivity(), dateFormat));
mGraphView.getGridLabelRenderer().setTextSize(32);
mGraphView.getGridLabelRenderer().setNumHorizontalLabels(7);
double minX = mCurrencyStampList.get(0).getDate().getTime();
double maxX = mCurrencyStampList.get(mCurrencyStampList.size()-1).getDate().getTime();
mGraphView.getViewport().setMinimalViewport(minX, maxX, minY == null ? 0 : minY, maxY);
mGraphView.getViewport().setXAxisBoundsManual(true);
mGraphView.getViewport().setYAxisBoundsManual(true);
}
Деления графика не совпадают во времени.Как это исправить?
обн: Мне кажется, я понимаю, почему крайние линии смещаются в центр.метка времени Unix теряет точность при преобразовании в удвоение.Я не знаю, как это исправить.Та же проблема с библиотекой Mpandroidchart.Пробую пробную версию AnyChart, у меня неплохо сработало (в конструкторе точек использовал собственный формат. Не float и double) но это пробная версия