MPAndroid LineChart - изменить заполнение первого и последнего значений оси X - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующая линейная диаграмма с использованием MPAndroidChart:

Печать первой позиции X

Печать последней позиции X

Я использую следующий метод:

chart.setVisibleXRangeMaximum(5)

, который показывает только 5 значений в области просмотра, остальные из них будут отображаться при прокрутке.

I 'm также используя этот метод:

chart.setViewPortOffsets(0,25,0,40);

, который удаляет левое и правое смещение, чтобы диаграмма покрывала весь экран, и устанавливает верхнее и нижнее смещения, чтобы иметь пространство между контейнером, в котором он находится.

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

Я пытался использовать некоторые методы, чтобы изменить пространство или смещение оси X, но ни один из нихработал.

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

Весь код моего графика ниже:

    LineChart chart = view.findViewById(R.id.chartCalendar);

    // Setting up the data
    List<Entry> entries = new ArrayList<Entry>();
    entries.add(new Entry(1,1200));
    .....


    // Creating dataset
    LineDataSet dataSet = new LineDataSet(entries, "Label"); // add entries to dataset

    // Dataset styling
    dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);
    dataSet.setDrawFilled(true);
    dataSet.setFillColor(ContextCompat.getColor(this.getActivity(), R.color.whiteBlue));
    dataSet.setColor(ContextCompat.getColor(this.getActivity(), R.color.darkBlue));
    dataSet.setLineWidth(2); // Line border thickness
    dataSet.setCircleColor(ContextCompat.getColor(this.getActivity(), R.color.darkBlue)); // Border circle values color

    // Setting up LineChart
    LineData lineData = new LineData(dataSet);

    // Styling chart
    chart.setData(lineData);
    chart.getAxisLeft().setDrawGridLines(false);
    chart.getAxisRight().setDrawGridLines(false);
    chart.getXAxis().setDrawGridLines(false);
    chart.getXAxis().setAxisMaximum(31);
    chart.setVisibleXRangeMaximum(5); // Show maximum 10 before scrolling
    chart.getLegend().setEnabled(false);
    chart.setDrawBorders(false);// Hide the description
    chart.getXAxis().setTextColor(ContextCompat.getColor(this.getActivity(), R.color.white)); // Change X-axis label color
    YAxis yAxis = chart.getAxisLeft();
    yAxis.setTextColor(ContextCompat.getColor(this.getActivity(), R.color.white)); // change Y-axis label color
    yAxis.setAxisLineColor(ContextCompat.getColor(this.getActivity(), R.color.darkBlue));
    yAxis.setTextColor(ContextCompat.getColor(this.getActivity(), R.color.white));
    // remove axis
    YAxis leftAxis = chart.getAxisLeft();
    leftAxis.setEnabled(false);
    YAxis rightAxis = chart.getAxisRight();
    rightAxis.setEnabled(false);

    // X axis to bottom
    chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
    chart.getLineData().setValueTextColor(ContextCompat.getColor(this.getActivity(), R.color.white)); // Change value color
    chart.getXAxis().setGranularity(1);
    chart.setViewPortOffsets(0,25,0,40);
    chart.getDescription().setEnabled(false);

    // Refresh graph
    chart.animateX(500);

У вас, ребята, есть идеи, как это исправить?Спасибо!

...