Кривые сплайна с использованием achartengine с кубической линейной диаграммой не проходят через все точки

Я использую achartengine с кубической линейной диаграммой, но она не работает. Кубическая линейная диаграмма не проходит через все точки ряда. В этом примере график находится далеко от точек. Что я делаю не так, или это реальная проблема с achartengine?

cubiclinechart

Код:

    XYMultipleSeriesDataset series = new XYMultipleSeriesDataset();

    XYValueSeries newTicketSeries = new XYValueSeries("New Tickets");
    newTicketSeries.add(1, 14);
    newTicketSeries.add( 2, 12);
    newTicketSeries.add(3, 18);
    newTicketSeries.add( 4, 5);
    newTicketSeries.add( 5, 10);
    series.addSeries(newTicketSeries);
    XYValueSeries fixedTicketSeries = new XYValueSeries("Fixed Tickets");
    fixedTicketSeries.add( 1, 15);
    fixedTicketSeries.add( 2, 5);
    fixedTicketSeries.add( 3, 15);
    fixedTicketSeries.add(4, 5);
    fixedTicketSeries.add(5, 15);
    series.addSeries(fixedTicketSeries);

    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

    renderer.setAxisTitleTextSize(56);
    renderer.setChartTitleTextSize(50);
    renderer.setLabelsTextSize(55);
    renderer.setZoomEnabled(true, false);
    renderer.setPanEnabled(false, false);

    renderer.setRange(new double[]{0, 10, 0, 20});

    //renderer.setMargins(new int[] { 20, 30, 15, 0 });
    XYSeriesRenderer newTicketRenderer = new XYSeriesRenderer();
    newTicketRenderer.setColor(Color.argb(250, 0, 210, 250));
    renderer.addSeriesRenderer(newTicketRenderer);
    XYSeriesRenderer fixedTicketRenderer = new XYSeriesRenderer();
    fixedTicketRenderer.setColor(Color.RED);
    fixedTicketRenderer.setLineWidth(10);

    fixedTicketRenderer.setPointStyle(PointStyle.CIRCLE);

    fixedTicketRenderer.setFillPoints(true);
    renderer.addSeriesRenderer(fixedTicketRenderer);

    renderer.setPointSize(40);
    renderer.setXLabels(0);
    renderer.setYLabels(0);
    newTicketRenderer.setDisplayChartValues(true);
    newTicketRenderer.setChartValuesTextSize(30);
    renderer.setShowGrid(false);
    renderer.setShowLegend(true);
    renderer.setShowLabels(false);
    renderer.setBarSpacing(0.5);
    renderer.setBackgroundColor(Color.TRANSPARENT);
    renderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01)); 

    //renderer.setZoomEnabled(false, false);

    GraphicalView chartView;



    String[] types = new String[] { BarChart.TYPE, CubicLineChart.TYPE};

    chartView = ChartFactory.getCombinedXYChartView(getActivity(), series, renderer, types);

person Zeezer    schedule 08.01.2014    source источник
comment
Какую версию АСЕ вы используете?   -  person Dan D.    schedule 08.01.2014
comment
Самый последний. 1.1.0. Кроме того, демо страдает той же ошибкой. Если вы перейдете к демонстрации AChartEngine, а затем выберите Комбинированная температура. Тот же эффект можно увидеть на оранжевой линии.   -  person Zeezer    schedule 08.01.2014


Ответы (1)


Это действительно была ошибка. Я проверил исправление в SVN. Вы можете загрузить версию, включающую это исправление, здесь.

person Dan D.    schedule 08.01.2014
comment
Ой ну спасибо! Как передать типы в getCombinedXYChartView в новой версии? Новая версия приводит к ошибкам компиляции с использованием таких типов: new String[] { BarChart.TYPE, CubicLineChart.TYPE}; - person Zeezer; 08.01.2014
comment
См. этот пример: code.google.com/p/achartengine/source/browse/trunk/achartengine/ - person Dan D.; 08.01.2014
comment
Только что обнаружил, что это не на 100% правильно. Теперь график проходит через все точки, но некоторые точки расположены неправильно (как раньше). Кроме того, график кажется менее гладким, чем ожидалось. - person Zeezer; 09.01.2014