MPAndroidChart-水平条形图-如何将x轴标签向左对齐,在负条形图上将条形值向左对齐

时间:2018-06-29 07:15:22

标签: android bar-chart mpandroidchart

我是MPAndroidchart的新手,这里的水平条形图存在一些问题

1. 如何将x轴标签对齐到左对齐

2. 如何将条形图的值与条形左侧的负数对齐

3. 如何解决在x y轴的轴线越多时避免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();

请帮助我解决这些问题。 预先感谢

1 个答案:

答案 0 :(得分:0)

第一个问题的答案

  1. 添加到x轴标签
$(document).ready(function() {
  var minYear = new Date().getFullYear() - 5;
  let y = 0;
  for (i = 0; i <= 10; i++)
    y = minYear + 1;
    $("#myselectYear").append(new Option(y, y));
  }
});