我正在尝试绘制以特定日期存储的动物的体重图。我的体重等级有两个变量,日期和体重。
这是我正在使用的代码。
else if (str.equals("Weight"))
{
mDbHelper.open();
wtArray = mDbHelper.getWeight();
mDbHelper.close();
TimeSeries diaSeries = new TimeSeries("Weight");
for ( int i =0; i <wtArray.size(); i++)
{
Weight wt = wtArray.get(i);
diaSeries.add(wt.date, wt.weight);
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(diaSeries);
XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.DIAMOND);
renderer.setFillPoints(true);
mrenderer.addSeriesRenderer(renderer);
graphLayout.addView(ChartFactory.getTimeChartView(this, dataset, mrenderer, "MM/dd/yyyy"));
}
此代码的问题是,它从不在 x 轴上显示任何内容,也没有显示任何图形线。
其次,如果我想显示从特定日期到另一个日期的数据怎么办?比如二月到三月等?
最佳答案
我已经使用您的代码构建了一个示例来为我编译和运行。请参阅下面正确显示图表的代码。该代码构建了一个 Intent
,因此您必须更改最后一行来构建 View
。
因此,如果您确实确定确实将数据放入模型中,那么您应该检查布局。您可能没有正确地将图 TableView 添加到您的布局中。
List<Date> wtArray = new ArrayList<Date>();
double[] weight = new double[] { 70, 71, 74, 73, 70, 71, 75, 76, 75, 73, 75, 73 };
for (int i = 0; i < 12; i++) {
wtArray.add(new Date(108, i, 1));
}
TimeSeries diaSeries = new TimeSeries("Weight");
for (int i = 0; i < wtArray.size(); i++) {
diaSeries.add(wtArray.get(i), weight[i]);
}
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset.addSeries(diaSeries);
XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.DIAMOND);
renderer.setFillPoints(true);
mrenderer.addSeriesRenderer(renderer);
return ChartFactory.getTimeChartIntent(context, dataset, mrenderer, "MM/dd/yyyy");
关于java - AcharEngine制作日期相关图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429554/