MPAndroidChart:线形图填充不会在XAxis处停止
我正在使用。当我使用LineChart setDrawFilled()方法填充直线和x轴之间的空间,并手动将范围调整为大于默认值时,填充部分将超过x轴,如此屏幕截图所示: 蓝色填充应在绿色虚线处停止,该虚线位于x轴上方,但它延伸到x轴上方并进入正y值MPAndroidChart:线形图填充不会在XAxis处停止,android,linechart,mpandroidchart,Android,Linechart,Mpandroidchart,我正在使用。当我使用LineChart setDrawFilled()方法填充直线和x轴之间的空间,并手动将范围调整为大于默认值时,填充部分将超过x轴,如此屏幕截图所示: 蓝色填充应在绿色虚线处停止,该虚线位于x轴上方,但它延伸到x轴上方并进入正y值 *经过进一步调查,我发现只有当绿线设置为0时才会发生这种情况。好吧,我刚刚想出了一个简单的解决办法。问题似乎在于限制线与x轴重叠-因此您所要做的就是防止出现0 y值 我以前的经历是: LimitLine line= new LimitLine((f
*经过进一步调查,我发现只有当绿线设置为0时才会发生这种情况。好吧,我刚刚想出了一个简单的解决办法。问题似乎在于限制线与x轴重叠-因此您所要做的就是防止出现0 y值 我以前的经历是:
LimitLine line= new LimitLine((float) foo);
为了防止这种情况发生,我将其更改为以下内容:
if(foo == 0)
foo = 0.00000001f;
LimitLine line= new LimitLine((float) foo);
它不漂亮,但在我的情况下,它确实很好,而且显示效果也很好。限制行的默认值格式化程序无论如何都会将该值舍入为0,因此应该都很好
固定结果:
另一种选择是使用库提供的
FillFormatter
接口:
这个类允许您创建自己的逻辑,说明“填充线”应该在哪里结束
只需在自定义格式化程序类中实现FillFormatter
类,并返回希望填充行结束的值
例如:
class MyCustomFillFormatter implements FillFormatter {
// return the fill position
public float getFillLinePosition(LineDataSet dataSet, LineData data, float chartMaxY, float chartMinY) {
return 0f;
}
}
在getFillLinePosition(…)
方法中,您当然可以根据各种影响因素开发自己的逻辑,确定行的位置
创建格式化程序后,将其设置为折线图
:
lineChart.setFillFormatter(new MyCustomFillFormatter());
是的,这是一个更好的解决方案-谢谢!稍微不相关的问题-是否需要在x轴上方和下方分别自定义填充颜色?