我正在使用android achartengine库来绘制葡萄糖读数的图表。 Y轴有读数和X轴日期/时间。我需要为每天,早上,中午和晚上绘制3个读数。但是所有的病人都不会拿三个读数。他们也许有些日子不会读书。所以在那些相应的日子里,不应该显示数值。在搜索之后我发现了它的可能性
XYSeries(“餐前”)。add(value,MathHelper.NULL_VALUE)
尝试使用这样的虚拟数据。
public XYMultipleSeriesDataset getDemoDataset(){
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYSeries series = new XYSeries("Pre-meal ");
series.add(1, MathHelper.NULL_VALUE);
series2.add(2, MathHelper.NULL_VALUE);
for (int j = 3; j < 10; j++) {
if((j%2)==0){
series.add(j, j*5);
series2.add(j, j*10);
}
else {
series.add(j, MathHelper.NULL_VALUE);
series2.add(j, MathHelper.NULL_VALUE);
}
j=j+1;
series.add(j, 20);
series2.add(j, 30);
j=j+1;
series.add(j, 60);
series2.add(j, 130);
dataset.addSeries(series);
dataset.addSeries(series2);
return dataset;
}
}
private XYMultipleSeriesRenderer getDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setPointSize(5f);
renderer.setMargins(new int[] {20, 30, 15, 0});
renderer.setYAxisMax(100);
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.YELLOW);
r.setPointStyle(PointStyle.SQUARE);
r.setFillBelowLineColor(Color.WHITE);
r.setFillPoints(true);
renderer.addSeriesRenderer(r);
r = new XYSeriesRenderer();
r.setPointStyle(PointStyle.CIRCLE);
r.setColor(Color.GREEN);
r.setFillPoints(true);
renderer.addSeriesRenderer(r);
renderer.setAxesColor(Color.DKGRAY);
renderer.setLabelsColor(Color.LTGRAY);
return renderer;
}
我按如下方式调用chartEngine意图
intent = ChartFactory.getLineChartIntent(this, Postmeal.getDemoDataset(),getDemoRenderer());
startActivity(intent);
但是图表绘制了一些不正确的值。
注意:当我使用series.add(1,0)时它工作正常;而不是series.add(1,MathHelper.NULL_VALUE); ! 还有类SensorValuesChart()在同一设备中绘制空值!
有人请帮助我!