MPAndroidChart Scatter点在组合图表中裁剪

时间:2016-05-26 13:43:10

标签: android mpandroidchart

我使用组合图表,它结合了线条(RED)和散点图。但是由于某些原因,散点图点在图表边缘被裁剪,例如:

enter image description here

有没有办法阻止它?

这是我的图表代码:

    chart.getAxisLeft().setAxisMaxValue(1.1f);
    chart.getLegend().setEnabled(false);
    chart.setTouchEnabled(false);
    chart.setDragEnabled(false);
    chart.setScaleEnabled(false);
    chart.setPinchZoom(false);
    chart.setDoubleTapToZoomEnabled(false);
    chart.setHighlightPerDragEnabled(false);
    chart.setHighlightPerTapEnabled(false);
    chart.getAxisRight().setEnabled(false);
    chart.getAxisLeft().setEnabled(false);
    chart.getXAxis().setEnabled(false);
    chart.setDescription("");
    chart.setNoDataText("");

和我的分散数据集:

    foodDataSet = new ScatterDataSet(foodEntries, "Food");
    foodDataSet.setColor(ContextCompat.getColor(getContext(), R.color.green_main));
    foodDataSet.setScatterShape(ScatterChart.ScatterShape.CIRCLE);
    foodDataSet.setScatterShapeSize(10f);
    foodDataSet.setDrawValues(false);
    foodDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);

更新 enter image description here

这是带轴的图表 enter image description here

2 个答案:

答案 0 :(得分:1)

经过一些尝试,我能够找到解决问题的黑客。然而,如果可以建议适当的解决方案将是好的。目前的解决方案

chart.setData(data);
chart.getXAxis().setAxisMinValue(-0.1f);
chart.setVisibleXRangeMinimum(xAxisLabels.size() - 0.81f);
chart.invalidate();

如果使用更大的数据点,则应增加最小值,但也需要更新最小可见x范围。减少减法值以增加偏移量。

这种解决方案的缺点是它不能很好地扩展

答案 1 :(得分:0)

如果还有其他人遇到这个问题,这就是我根据条目数使我的规模扩大的方法。假设每个数据集的条目数相同,而您的特定数据可能相同,也可能不相同。

    float xAxisSideOffset = (float)(xMax - xMin) / (data.getEntryCount()/data.getDataSetCount());

    combinedChart.getXAxis().setAxisMinimum(xMin - timeInterval - xAxisSideOffset/2);
    combinedChart.getXAxis().setAxisMaximum(xMax - timeInterval + xAxisSideOffset/2);