2015-12-09 4 views
1

Я пытался нарисовать кубический линейный график, например, как это:Рисование кубической диаграммы линии с помощью MPAndroid диаграммы

enter image description here

с использованием библиотеки диаграмм MPAndroid.

Я могу нарисовать линию, но не заполнять между осью X и линией, как показано на рисунке.
Прошли через библиотеку и много вопросов.

+0

Для ясности: в вашем графике можно увидеть нормальную timechart с гладкой кривой (синусоидальной). Кубическое выражение - это нечто другое. –

+0

@ FrankN.Stein Вы можете проверить заголовок графика в самой ссылке https://github.com/PhilJay/MPAndroidChart. Я просто хотел узнать, как получить заполнение. Это можно сделать, используя линейную диаграмму или что-то еще. –

+0

В этом примере не показано. Я знаю, что это возможно. Не просто в состоянии вычислить материал –

ответ

5

Я думаю, что вам это нужно:

LineDataSet dataset = new LineDataSet(vals, null); 

dataset.setDrawFilled(true); 

setDrawFilled(boolean filled)

значение ИСТИНА, если DataSet должна быть рисуется заполнена (поверхность), а не только в качестве линии, отключив это даст большой повышение производительности!по умолчанию: false

Вы также можете контролировать прозрачность:

setFillAlpha(int alpha)

устанавливает значение альфа (прозрачность), который используется для заполнения поверхности линии (0-255), по умолчанию: 85

И цвет:

setFillColor(int color)

задает цвет, который используется для заполнения поверхности линии

3
  1. Чтобы удалить горизонтальные линии сетки:

    chart.getXAxis().setDrawGridLines(false); 
    
  2. для кубических линий:

    dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER); 
    
  3. Заполнить область ниже линии, отключить отображаемые значения:

    dataSet.setDrawFilled(true); 
    dataSet.setDrawValues(false); 
    
  4. Установить цвет заливки и цвет линии:

    dataSet.setFillColor(ContextCompat.getColor(contex,R.color.pale_green)); 
    dataSet.setColor(ContextCompat.getColor(contex,R.color.pale_green)); 
    
  5. Отключить прозрачность (диапазон значений 0-255) и отключить рисование кругов на Основная схема линии:

    dataSet.setFillAlpha(255); 
    dataSet.setDrawCircles(false); 
    

Результат: enter image description here


edit1: Чтобы отключить легенду и описание скрыть:

chart.getDescription().setText(""); 
chart.getLegend().setEnabled(false); 

и:

<color name="pale_green">#6BF3AD</color> 

edit2: Для того, чтобы отключить правую ось:

chart.getAxisRight().setEnabled(false); 

Edit3: Почти забыл последнюю вещь:

chart.getAxisLeft().setValueFormatter(new IAxisValueFormatter() { 
     @Override 
     public String getFormattedValue(float value, AxisBase axis) { 
      return String.format("%.2f $",value); 
     } 
    }); 
Смежные вопросы