MPAndroidChart - Горизонтальная гистограмма - как выровнять метку оси x по левому краю, выровнять значение гистограммы влево на отрицательной гистограмме - PullRequest
0 голосов
/ 29 июня 2018

Я новичок в MPAndroidchart, здесь у меня есть проблема с горизонтальной гистограммой

1. как выровнять метку оси x по левому краю

2. как выровнять значение гистограммы по левой стороне бара для отрицательных чисел

3. как исправить пробел в месте, где ось x-y пересекается, когда линия оси с больше

4. как исправить перекрытие стержня в верхней части линии оси при масштабировании

enter image description here

enter image description here

вот мой код

HorizontalBarChart mStatGraph = (HorizontalBarChart) findViewById(R.id.reportlist_stat_graph);
    mStatGraph.setDrawBarShadow(false);
    mStatGraph.setDrawValueAboveBar(true);
    mStatGraph.getDescription().setEnabled(false);
    mStatGraph.setMaxVisibleValueCount(20);
    mStatGraph.setPinchZoom(false);
    mStatGraph.setDrawGridBackground(true);
    mStatGraph.setGridBackgroundColor(Color.WHITE);
    mStatGraph.setExtraBottomOffset(20);
    mStatGraph.setViewPortOffsets(5, 0, 5, 20);

    XAxis xl = mStatGraph.getXAxis();
    xl.setPosition(XAxis.XAxisPosition.BOTTOM);
    xl.setTypeface(mTfLight);
    xl.setTextSize(13f);
    xl.setTextColor(Color.parseColor("#2C3846"));
    xl.setAxisLineColor(Color.BLACK);
    xl.setAxisLineWidth(2f);
    xl.setDrawAxisLine(true);
    xl.setDrawGridLines(false);
    xl.setDrawLabels(true);
    xl.setGranularity(1f);
    xl.setAxisMinimum(0f);
    xl.setYOffset(2f);
    xl.setXOffset(10f);
    xl.setSpaceMin(2f);
    int lineChartXOffset = getResources().getInteger(R.integer.report_bar_chart_xoffset);
    xl.setXOffset(lineChartXOffset);
    mStatGraph.getRendererXAxis().getPaintAxisLabels().setTextAlign(Paint.Align.LEFT);


    YAxis yl = mStatGraph.getAxisLeft();
    yl.setDrawAxisLine(false);
    yl.setAxisLineWidth(0f);
    yl.setAxisLineWidth(Color.TRANSPARENT);
    yl.setDrawLabels(false);
    yl.setGridColor(Color.GRAY);
    yl.setDrawGridLines(true);
    yl.setAxisMinimum(-0.005f);
    yl.setSpaceBottom(5f);
    yl.setSpaceTop(5f);
    yl.setEnabled(true);

    YAxis yr = mStatGraph.getAxisRight();
    yr.setTypeface(mTfLight);
    yr.setTextSize(12f);
    yr.setDrawGridLines(false);
    yr.setDrawLabels(true);
    yr.setGridColor(Color.GRAY);
    yr.setAxisMinimum(-0.005f);
    yr.setXOffset(15f);
    yr.setYOffset(-3f);
    yr.setDrawAxisLine(true);
    yr.setAxisLineColor(Color.BLACK);
    yr.setAxisLineWidth(2f);
    yr.setSpaceBottom(5f);
    yr.setSpaceTop(5f);
    yr.setEnabled(true);
    yr.setValueFormatter(barGraphValueFormatter);

    mStatGraph.getLegend().setEnabled(false);
    setData();
    mStatGraph.setFitBars(true);
    mStatGraph.invalidate();

Пожалуйста, помогите мне решить эти проблемы. Заранее спасибо

...