2016-09-28 9 views
1

Как и в случае с MPAndroidChart - First and last bars not rendering correctly, первый и последний пузырь в моей диаграмме не отображается полностью и нарезается пополам, как видно на изображении.MPAndroidChart: BubbleChart первый и последний пузырь визуализируется наполовину показан

enter image description here

Ниже приводится текущая реализация для BubbleChart.

private void initializeBubbleChart() { 
     mChart = (BubbleChart) findViewById(R.id.bubblechart); 

     mChart .setDescription(""); 

     mChart .setOnChartValueSelectedListener(this); 

     mChart .setDrawGridBackground(false); 

     mChart .setTouchEnabled(true); 
     mChart .setDragEnabled(true); 
     mChart .setScaleEnabled(true); 

     AxisValueFormatter xAxisFormatter = new DayAxisValueFormatter(mChart); 

     XAxis xAxis = mChart .getXAxis(); 
     xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
     xAxis.setTypeface(typeFace); 
     xAxis.setDrawGridLines(false); 
     xAxis.setGranularity(1f); // only intervals of 1 day 
     xAxis.setValueFormatter(xAxisFormatter); 

     AxisValueFormatter yAxis = new YAxisValueFormatter("duration"); 

     YAxis leftAxis = mChart .getAxisLeft(); 
     leftAxis.setTypeface(typeFace); 
     leftAxis.setSpaceTop(30f); 
     leftAxis.setSpaceBottom(30f); 
     leftAxis.setDrawGridLines(false); 
     leftAxis.setValueFormatter(yAxis); 
     leftAxis.setDrawZeroLine(false); 

     YAxis rightAxis = mChart .getAxisRight(); 
     rightAxis.setTypeface(typeFace); 
     rightAxis.setSpaceTop(30f); 
     rightAxis.setSpaceBottom(30f); 
     rightAxis.setDrawGridLines(false); 
     rightAxis.setValueFormatter(yAxis); 
     rightAxis.setDrawZeroLine(false); 

     populateData(); 
    } 

@Philipp Jahoda

+0

Вы попробовали ответ 'chart.setFitBars (true)' из связанного сообщения? Что случилось? – 0X0nosugar

+0

@ 0X0nosugar этот метод может использоваться только для диаграмм, на которых выводятся бары. –

ответ

2

Использование setAxisMinValue() и setAxisMaxValue() настроить диапазон оси:

xAxis.setAxisMinValue(valueBelowActualMinimum); 
xAxis.setAxisMaxValue(valueAboveActualMaximum); 

и модифицировать DayAxisValueFormatter, чтобы показать или подавить метки для краевых значений.

+0

Спасибо, что как-то решает проблему. Желание было похоже на метод setFitBar() 'для BubbleChart. –

+0

@ Кай - да, вы правы. Это было бы удобно. – 0X0nosugar