1

我正在尝试绘制以特定日期存储的动物的重量图。我有两个 vars 的重量等级,日期和重量。

这是我正在使用的代码。

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 轴上显示任何内容,也没有显示任何图形线。

其次,如果我想显示从特定日期到另一个日期的数据怎么办?比如从二月到三月等?

4

1 回答 1

0

我已经使用您的代码构建了一个示例来为我编译和运行。请参阅下面正确显示图表的代码。代码构建一个Intent,因此您必须更改最后一行来构建一个View.

因此,如果您确实确定您确实将数据放入模型中,那么您应该检查布局。您可能没有正确地将图表视图添加到您的布局中。

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");
于 2012-09-15T05:35:47.047 回答