2013-11-24 4 views
1

Я хотел бы объединить гистограмму с двумя сериями данных и линейной диаграммой в AChartEngine, но я не смог этого сделать. В демо-версии AChartEngine я нашел только пример, который объединяет линейную диаграмму одного ряда и линейную диаграмму (комбинированная температура).Как объединить диаграмму с несколькими рядами и линейную диаграмму

Что я хотел бы: http://i.imgur.com/Jxq0BTV.jpg

Если я определяю 3 серии (2 для гистограммы, 1 для линейной диаграммы) в наборе данных для комбинированной диаграммы XY, как это: ChartFactory.getCombinedXYChartView(ctx, dataset, renderer, new String[] { BarChart.TYPE, BarChart.TYPE, LineChart.TYPE });

. ..то я получаю этот результат: http://i.imgur.com/71HAPo3.jpg

Если я определяю 3-й серии и 2 диаграммы типов:
ChartFactory.getCombinedXYChartView(ctx, dataset, renderer, new String[] { BarChart.TYPE, LineChart.TYPE });

... тогда я получаю исключение:
java.lang.IllegalArgumentException: Dataset, renderer and types should be not null and the datasets series count should be equal to the types length
at org.achartengine.ChartFactory.getCombinedXYChartView(ChartFactory.java:202)

ли я что-то неправильно, или же AChartEngine просто не поддерживает множественный график серии бар и линейную диаграмму в комбинации?

ответ

0

Начиная с примера «Комбинированная температура» в демо-версии AChartEngine вы можете сохранить LineChart и BarChart так, как они есть, и добавить новый BarChart. Значения оси x для двух гистограмм должны быть немного разными, например, они не перекрываются. Например, если значения x должны быть 1, тогда первая гистограмма может добавить значение в 0.75, а второе - в 1.25. Таким образом, они будут предоставляться отдельно.

Кроме того, установите расстояние между основными маркерами рендеринга: renderer.setBarSpacing(1); означает, что расстояние между двумя элементами одной и той же серии равно ширине одного бара.

+0

Спасибо за подсказку Дэн. Однако предлагаемый подход делает перекрытие рядов баров, когда я определяю диаграмму как комбинированный график XY следующим образом: 'new CombinedXYChart (набор данных, рендерер, новая строка [] {BarChart.TYPE, BarChart.TYPE, LineChart.TYPE});' Равнина гистограмма отлично работает с несколькими серии набора данных: 'новый BarChart (набор данных, визуализации, BarChart.Type.DEFAULT)' Та же проблема сообщалось здесь: http://stackoverflow.com/questions/20195585 Любая идея решить это? – stefan

+0

Я предложил использовать одну гистограмму с двумя сериями и однострочной диаграммой. –

+0

Дэн, может быть, я тебя неправильно понимаю. Я обновил свой пост, чтобы уточнить, что у меня есть. Большое спасибо за ваше терпение и отличную поддержку! – stefan

2

Посмотрите на следующее: http://tapt007.hubpages.com/hub/Android-Combined-Charts Надеюсь, вам это поможет.

+0

Спасибо за ваш намек. В этой статье объясняется сочетание гистограммы с одной последовательностью данных и линейной диаграммой. То, что я ищу, представляет собой гистограмму с ** двумя ** сериями данных в сочетании с линейной диаграммой. – stefan

Смежные вопросы