我使用的是MPAndroidChart.当我使用LineChart setDrawFilled()方法填充线和x轴之间的空间,并手动将范围调整为大于默认值时,填充部分将超过x-如此屏幕快照所示的轴:
蓝色填充应停止在x轴上方的绿色虚线处,但会在其上方延伸并变为正y值.
*经进一步调查,我发现似乎仅在绿线设置为0时发生.
解决方法:
另一种选择是使用该库提供的FillFormatter接口:https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/com/github/mikephil/charting/utils/FillFormatter.java
此类允许您做的是在“填充线”应在何处结束创建自己的逻辑.
只需在您的自定义格式器类中实现FillFormatter类,然后返回您想要填充线结束的值即可.
例:
class MyCustomFillFormatter implements FillFormatter {
// return the fill position
public float getFillLinePosition(LineDataSet dataSet, LineData data, float chartMaxY, float chartMinY) {
return 0f;
}
}
当然,在getFillLinePosition(…)方法中,您可以根据各种影响因素在行的位置上开发自己的逻辑.
创建格式化程序后,将其设置为LineChart:
lineChart.setFillFormatter(new MyCustomFillFormatter());