2015-02-22 2 views
0

Я использую Achartengine для генерации графика TimeChart. Набор данных состоит из дат с 1/15/2003 по 12/4/2040 (по оси X) с соответствующими случайными значениями для оси Y. Я динамически показываю график, где я продолжаю читать значения в фоновом потоке (AsyncTask) и перерисовывать график. У меня 2 вопроса:Отображение только части графика с использованием Achartengine

  1. Вид начинается с января, 2, 1970 (I Доно почему), и я должен перейти к 1/15/2003, чтобы увидеть график. Что я должен изменить, чтобы начать с 15.01.2003?

  2. Также я принимаю 2 значения даты FROM и TO (например: FROM: 2/17/2004 TO: 6/23/2006), и я хочу отображать график только в этом диапазоне. Есть какой-либо способ сделать это?

+0

я понял, почему его начинают показывать форму Jan, 2, 1970, которое, потому что я добавить точки данных, используя dataset.add (Date x, double y), и я создаю объекты данных как новые данные (String y), и это относится к дате ярости с 2 января 1970 года. – Gabriel

ответ

0

Я мог бы решить 1-ый с помощью mRenderer.setYAxisMin (новая дата ("1/15/2003 11:16:00 AM"). GetTime()) Несмотря на то, что это устаревший метод, но он сделал работа для меня. Теперь, когда я показываю график, его начинается с заданных данных, но не 2 января 1970 г.

0

Вы можете динамически установить ось Y min и max со значениями желаемых значений перед перекраской.

И для вопроса 1. возможно, лучший вариант - установить ограничения панорамирования, чтобы вы не могли прокручивать до пустых частей диаграммы. Вы можете сделать это, как этот

mRenderer.setPanLimits(new double[]{xMin, xMax, yMin, yMax}); 

где вы вычислить пределы, как этот

double xMin = minDate.getTime(); 
double xMax = maxDate.getTime(); 
Смежные вопросы