2013-11-08 3 views
0

Я работаю над гистограммами с двигателем AChart. Вот фрагмент кода.Прокладка по оси Y [AChart engine]

XYSeriesRenderer renderer = new XYSeriesRenderer();    
renderer.setColor(Color.GREEN); 
renderer.setDisplayChartValues(true); 
renderer.setChartValuesSpacing((float) 5.5d); 
renderer.setLineWidth((float) 10.5d); 

XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();    
mRenderer.addSeriesRenderer(renderer); 
mRenderer.setZoomButtonsVisible(true);  
mRenderer.setShowLegend(true); 
mRenderer.setShowGridX(true);  
mRenderer.setShowGridY(true);    
mRenderer.setBarSpacing(.5); 
mRenderer.setApplyBackgroundColor(true); 
mRenderer.setBackgroundColor(Color.BLACK); 
mRenderer.setXAxisMin(0); 
mRenderer.setYAxisMin(0); 
mRenderer.setXAxisMax(5); 
mRenderer.setYLabelsPadding(20f); 
mRenderer.addXTextLabel(1,"Income"); 
mRenderer.addXTextLabel(2,"Saving"); 
mRenderer.addXTextLabel(3,"Expenditure"); 
mRenderer.addXTextLabel(4,"NetIncome"); 
mRenderer.setPanEnabled(true, false);  

И вот что это значит.

enter image description here

См оси Y ЭТИКЕТКИ находятся над осью. Чтобы преодолеть это, я установил прокладку.

mRenderer.setYLabelsPadding(20f); 

Однако результат не тот, который я ожидал.

enter image description here

Y оси значения прошли мимо экрана. Как можно совместить метки относительно оси Y с правильным заполнением? Есть ли что-то, чего мне не хватает?

ответ

2

Я думаю, вам нужно определить размер Вашего левого края:

mRenderer.setMargins(new int[] {0, 50, 0, 0}); 

Значения в массиве сверху, слева, снизу, справа.

+0

Вы спасатель жизни! Благодаря! – Renjith

+0

Как это помогает? – JohnyTex

0

Я решил так:

int yMax=xySeriesIdle.getMaxY(); 
renderer.setYAxisMax(yMax+yMax/5d); 

который дает 1/5 дополнительного пространства для у-значений.

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