Графики в Android: aChartEngine и GraphView

Я разрабатываю приложение для гаджета для здоровья, и на этом этапе мне нужно уметь рисовать графики. Данные непрерывно поступают через Bluetooth, и график должен быть похож на кардиографический с непрерывным плавным обновлением при получении новых данных. Я нашел две библиотеки для решения этой проблемы (aChartEngine и GraphView). Не могли бы вы подсказать, в чем разница между ними и когда использовать каждый из них?


person Alex Bailo    schedule 02.07.2015    source источник
comment
stackoverflow.com/questions/26467376/android-charting-libraries   -  person Angel Koh    schedule 02.07.2015


Ответы (1)


Вот очень краткий обзор 3 библиотек, которые я тестировал для рисования графиков в реальном времени.

  1. GraphView http://www.android-graphview.org/

    Плюсы. Отлично подходит для отображения и обновления нескольких графиков в одном представлении (проверено до 12 графиков). Отличная документация. Определенно отлично работает для одного графика в представлении.

    Минусы: ограниченные возможности оформления. Ось Y не масштабируется и не прокручивается. Очень сложно обновлять ось X как время (ЧЧ:ММ:СС:ССС) в режиме реального времени.

  2. MPAndroidChart https://github.com/PhilJay/MPAndroidChart

    Плюсы. Отличные варианты оформления. Простой в реализации прослушиватель на кране. Поддерживается обновление в реальном времени. Масштабируемость и прокрутка во всех направлениях. Лучше всего использовать для одного графика в представлении. Довольно хорошая документация.

    Минусы. Гораздо медленнее и потребляет больше памяти, чем GraphView.

  3. ChartEngine

    Плюсы: мощная библиотека с множеством опций и хорошим сообществом.

    Минусы: обновление в реальном времени на самом деле не поддерживается, что означает, что нужно потратить очень много времени, чтобы заставить его работать для обновлений в реальном времени. Кроме того, документация ограничена, хотя в Интернете можно найти несколько примеров.

person Alex Bailo    schedule 04.08.2015
comment
Я обнаружил, что GraphView с 3 сериями довольно изменчив... он обновляется на основе данных с 3 очередями каждые 80 мс или около того. Кроме того, как можно установить метку оси Y? - person Someone Somewhere; 04.08.2015
comment
Есть 3 варианта: Автоматическая разметка цифр по оси Y - ничего делать не нужно. Статические числа: graph.getViewport().setYAxisBoundsManual(true); график.getViewport().setMinY(3.5); график.getViewport().setMaxY(8); а также setNumHorizontalLabels(5);. Статические метки — см. android-graphview.org/documentation/category/ - person Alex Bailo; 05.08.2015