AcharEngine делает график, связанный с датой

Я пытаюсь сделать график веса животного, хранящегося с определенной датой. У меня есть класс веса с двумя переменными, датой и весом.

Вот код, который я использую.

else if (str.equals("Weight"))
    {
        mDbHelper.open();
        wtArray = mDbHelper.getWeight();
        mDbHelper.close();

       TimeSeries diaSeries = new TimeSeries("Weight");

        for ( int i =0; i <wtArray.size(); i++)
        {
           Weight wt = wtArray.get(i);
           diaSeries.add(wt.date, wt.weight);
        }


        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        dataset.addSeries(diaSeries);

        XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();

        XYSeriesRenderer renderer = new XYSeriesRenderer();
        renderer.setColor(Color.RED);
        renderer.setPointStyle(PointStyle.DIAMOND);
        renderer.setFillPoints(true);
        mrenderer.addSeriesRenderer(renderer);

        graphLayout.addView(ChartFactory.getTimeChartView(this, dataset, mrenderer, "MM/dd/yyyy"));
    }

Проблема с этим кодом в том, что он никогда ничего не показывает на оси x, и линия графика также не отображается.

Во-вторых, что, если я хочу показать данные с определенной даты на другую дату? Например, с февраля по март и т. д.?


person Muhammad Umar    schedule 14.09.2012    source источник
comment
Вы уверены, что TimeSeries что-то содержит?   -  person Dan D.    schedule 14.09.2012
comment
да есть, я проверял   -  person Muhammad Umar    schedule 14.09.2012


Ответы (1)


Я использовал ваш код для создания примера для компиляции и запуска для меня. См. приведенный ниже код, который правильно отображает диаграмму. Код создает Intent, поэтому вам придется изменить последнюю строку, чтобы построить View.

Итак, если вы действительно уверены, что действительно помещаете данные в модель, вам следует проверить макет. Вероятно, вы неправильно добавляете вид диаграммы в свой макет.

List<Date> wtArray = new ArrayList<Date>();
double[] weight = new double[] { 70, 71, 74, 73, 70, 71, 75, 76, 75, 73, 75, 73 };
for (int i = 0; i < 12; i++) {
  wtArray.add(new Date(108, i, 1));
}
TimeSeries diaSeries = new TimeSeries("Weight");

for (int i = 0; i < wtArray.size(); i++) {
  diaSeries.add(wtArray.get(i), weight[i]);
}

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(diaSeries);

XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();

XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.DIAMOND);
renderer.setFillPoints(true);
mrenderer.addSeriesRenderer(renderer);

return ChartFactory.getTimeChartIntent(context, dataset, mrenderer, "MM/dd/yyyy");
person Dan D.    schedule 15.09.2012