他们是否有可能填充 MPAndroidChart 中两个数据集之间的区域?
Is their any possibility to fill area between two DataSet in MPAndroidChart?
我需要填写两个图表之间的区域。我试图用 FillFormatter 来做到这一点,但它只能在图表和直线之间填充。是否可以如图所示填充区域 2 图表(底部和顶部图表,描述最大和最小允许值)?网格必须在白色背景下可见 chart example
请查看FillFormatter interface. You can apply it to a dataset using mLineDataSet.setFillFormatter(mFillFormatter)。
我找到了解决方案
- 禁用标准网格:
getAxisLeft().setDrawGridLines(false);
getXAxis().setDrawGridLines(false);
- 添加 FillFormatter 填充,如本例所示:
https://github.com/PhilJay/MPAndroidChart/blob/remove_xindices/MPChartExample/src/com/xxmassdeveloper/mpchartexample/FilledLineActivity.java
使用LimitLine绘制自定义网格:
private void drawCustomGrid(XAxis xAxis, YAxis yAxis,
float xMax, float yMax,
int color, float width) {
if (xAxis.getLimitLines().size() == 0) {
for (int i = 10; i <= xMax; i += 10) {
LimitLine limitLine = new LimitLine(i);
limitLine.setLineWidth(width);
limitLine.setLineColor(color);
xAxis.addLimitLine(limitLine);
}
}
if (yAxis.getLimitLines().size() == 0) {
for (int j = 10; j <= yMax; j += 10) {
LimitLine limitLine = new LimitLine(j);
limitLine.setLineWidth(width);
limitLine.setLineColor(color);
yAxis.addLimitLine(limitLine);
}
}
}
定义自定义 FillFormatter 和 LineChartRenderer。请参阅此处的示例。
我需要填写两个图表之间的区域。我试图用 FillFormatter 来做到这一点,但它只能在图表和直线之间填充。是否可以如图所示填充区域 2 图表(底部和顶部图表,描述最大和最小允许值)?网格必须在白色背景下可见 chart example
请查看FillFormatter interface. You can apply it to a dataset using mLineDataSet.setFillFormatter(mFillFormatter)。
我找到了解决方案
- 禁用标准网格:
getAxisLeft().setDrawGridLines(false); getXAxis().setDrawGridLines(false);
- 添加 FillFormatter 填充,如本例所示: https://github.com/PhilJay/MPAndroidChart/blob/remove_xindices/MPChartExample/src/com/xxmassdeveloper/mpchartexample/FilledLineActivity.java
使用LimitLine绘制自定义网格:
private void drawCustomGrid(XAxis xAxis, YAxis yAxis, float xMax, float yMax, int color, float width) { if (xAxis.getLimitLines().size() == 0) { for (int i = 10; i <= xMax; i += 10) { LimitLine limitLine = new LimitLine(i); limitLine.setLineWidth(width); limitLine.setLineColor(color); xAxis.addLimitLine(limitLine); } } if (yAxis.getLimitLines().size() == 0) { for (int j = 10; j <= yMax; j += 10) { LimitLine limitLine = new LimitLine(j); limitLine.setLineWidth(width); limitLine.setLineColor(color); yAxis.addLimitLine(limitLine); } } }
定义自定义 FillFormatter 和 LineChartRenderer。请参阅此处的示例。