Adnroid MPAndroidChart 折线图属性怎样设置?

如图左侧为效果图,红框部分为 折线图左右留有空白,文字和XY轴间距,value值和折线原点间距。请教下需要怎样设置才能达到设计图效果

img

这里是图表初始化函数。


```java
 private void initCharts(LineChart mChart) {
        mChart.setNoDataText("暂无数据");
        XAxis xAxis;
        YAxis leftAxis;
        YAxis rightAxis;
        Legend l;
        mChart.setClickable(false);
        mChart.setDoubleTapToZoomEnabled(false);
        mChart.setPinchZoom(true);
        mChart.setDescription(null);
        mChart.setOnChartValueSelectedListener(null);
        mChart.setDrawGridBackground(false);
        xAxis = mChart.getXAxis();
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        xAxis.setDrawGridLines(false);
        xAxis.setGridColor(Color.GRAY);
        xAxis.setGranularity(1f);
        xAxis.setTextColor(Color.BLACK);
        xAxis.setTextSize(12f);


        leftAxis = mChart.getAxisLeft();
        leftAxis.setDrawGridLines(true);
        leftAxis.setAxisLineColor(Color.GRAY);
        leftAxis.setTextColor(Color.BLACK);
        leftAxis.setSpaceTop(15f);
        leftAxis.setGridColor(Color.GRAY);
        leftAxis.setAxisMinimum(0f); // this replaces setStartAtZero(true)
        leftAxis.setTextSize(12f);
        rightAxis = mChart.getAxisRight();
        rightAxis.setEnabled(false);

        l = mChart.getLegend();
        l.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
        l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
        l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
        l.setDrawInside(false);
        l.setForm(Legend.LegendForm.SQUARE);
        l.setFormSize(9f);
        l.setTextSize(12f);
        l.setTextColor(Color.GRAY);
        l.setXEntrySpace(4f);
        l.setEnabled(false);
    }

这里是设置折线图具体数据的函数


```java
  private void setLineChartData(List<String> dateList, float maxY, List<Entry> entryList, List<Integer> colors) {
        Log.e(TAG, "maxY: " + maxY + " list.size: " + entryList.size());
        lineChart.getAxisLeft().setAxisMaximum(maxY);
        XAxis xAxis = lineChart.getXAxis();
        xAxis.setLabelCount(entryList.size());
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        xAxis.setDrawGridLines(false);
        xAxis.setGranularity(1f);
        
        setX(lineChart, dateList);
        LineDataSet set = new LineDataSet(entryList, "");

        set.setAxisDependency(YAxis.AxisDependency.LEFT);
        set.setColor(Color.parseColor("#258AFF"));
        set.setLineWidth(2f);
        set.setCircleRadius(4f);
        set.setFillAlpha(65);
        Drawable drawable = ContextCompat.getDrawable(this, R.drawable.shape_line_chart_bg);
        set.setFillDrawable(drawable);
        set.setDrawFilled(true);
        set.setHighLightColor(Color.parseColor("#258AFF"));
        set.setDrawCircleHole(false);
        set.setValueTextSize(12f);
        set.setCircleColors(colors);
        set.setValueTextColors(colors);
        // set.setValueTextColor(Color.parseColor("#258AFF"));
        set.setValueFormatter(new IndexAxisValueFormatter() {
            @Override
            public String getFormattedValue(float val) {
                return String.valueOf((int) val);
            }
        });

        LineData data = new LineData(set);
        data.setDrawValues(true);

        lineChart.setData(data);
        lineChart.getData().notifyDataChanged();
        lineChart.notifyDataSetChanged();
        lineChart.invalidate();
    }



```java
 private void setX(LineChart mChart, final List<String> date) {
//这里是设置 X轴参数属性
        ValueFormatter xAxisFormatter = new IndexAxisValueFormatter(date) {
            @Override
            public String getFormattedValue(float value) {
                int index = (int) value;
                if (index >= 0 && index < date.size()) {
                    return date.get(index);
                    //  return date.get(index).length() >= 10 ? date.get(index).substring(5, 10)  : "";
                }
                return "";
            }

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


```

xAxis.setYOffset(100);;设置X轴纵向偏移
yAxisLeft.setXOffset(100);Y轴左侧横向偏移
yAxisRight.setXOffset(100);Y轴右侧横向偏移