无法在MP Android Chart中显示条形图中的Pivot点

时间:2016-06-27 13:32:44

标签: java android mpandroidchart

我一直在玩MP Android图表。但是我无法在X和Y坐标中显示轴心点(0,0)。 如果条形图的x和Y坐标较低,则仅显示这些值。 值越大,条形图就会聚焦到条形图中值对应的点。

看看下面的图片:

Bar Graph Android (Mp Android Chart)

低于20的x轴值已经消失。

当X& y轴点(0,0)可见,Y轴的这些额外线在轴心点下方挤出。见下图:

Bar Graph 2 (Mp Android Chart)

请帮我解决这些问题。这是我的代码:

BarData data = new BarData(labels, (ArrayList) dataset);
 barChart.setData(data);
 barChart.animateY(3000);
 barChart.setPivotX(0);
 barChart.setPivotY(0);

3 个答案:

答案 0 :(得分:1)

我没有足够的声誉来发表评论。我最了解的是,对于第一个, 你可以试试这个。

YAxis yAxis = barChart.getAxisLeft();
yAxis.setAxisMinValue(0);

然后图表将从零值打印。

对于第二个,尝试将XAxis标签位置设置为底部。

 XAxis xAxis = barChart.getXAxis();
 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

答案 1 :(得分:1)

下面的代码可以帮助您删除网格线。您可以选择适合您的那些。

    XAxis xAxis = barChart.getXAxis();
    YAxis yAxisL = barChart.getAxisLeft();
    YAxis yAxisR = barChart.getAxisRight();
    xAxis.setDrawGridLines(false);
    xAxis.setDrawAxisLine(false);
    xAxis.setDrawLabels(false);
    yAxisL.setDrawAxisLine(false);
    yAxisL.setDrawLabels(false);
    yAxisR.setDrawGridLines(false);
    yAxisR.setDrawAxisLine(false);
    yAxisR.setDrawLabels(false);
    //remove horizontal lines
    AxisBase axisBase = barChart.getAxisLeft();
    axisBase.setDrawGridLines(false);

我希望如果没有yuo可以用图片回复,我可以提供帮助。刚刚做了这种性质的事情。

答案 2 :(得分:0)

解决了[有些帮助;)]。对于可能面临此问题的任何人,下面是带有图片的完整代码:

    //For pinch zoom
    barChart.setPinchZoom(false);

    //To enable/disable barChart scaling upon 2 fingers expansion on the chart
    barChart.setScaleXEnabled(false);
    barChart.setScaleYEnabled(false);

    //To disable double tap zoom
    barChart.setDoubleTapToZoomEnabled(false);

    barChart.animateY(3000);

    XAxis xAxis = barChart.getXAxis();
    YAxis yAxisL = barChart.getAxisLeft();
    YAxis yAxisR = barChart.getAxisRight();

    yAxisL.setAxisMinValue(0f);
    xAxis.setDrawGridLines(true);
    xAxis.setDrawAxisLine(true);
    xAxis.setDrawLabels(true);
    yAxisL.setDrawAxisLine(true);
    yAxisL.setDrawLabels(true);
    yAxisL.setDrawZeroLine(true);
    yAxisR.setDrawGridLines(false);
    yAxisR.setDrawAxisLine(true);
    yAxisR.setDrawLabels(false);
    //remove horizontal lines
    AxisBase axisBase = barChart.getAxisLeft();
    axisBase.setDrawGridLines(true);

enter image description here

干杯:):)