2012-09-14 110 views
1

我编辑了我的问题...aChartEngine中的日期图表

这里是我使用的代码,我将随着时间增加动物的体重。

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轴上显示任何值,i-e时间。我正在使用LinearLayout。请告诉我什么是错的。也没有显示图线。

其次,如果我想显示从特定日期到另一日期的数据?

回答

4

你这里有两种选择:

  • 您继续使用一个LineChart并添加自定义标签,同时禁止普通的:

    renderer.setXLabels(0); renderer.addXTextLabel(date.getTime(),“Label”);

  • 您使用TimeChart这是一个LineChart显示时间值使用您提供的格式,而不是LineChart

+0

查看SimpleDateFormat类以了解格式。 –

+0

现在请重温此问题感谢您的帮助。 –

1

umar。 检查我的下面的代码。我在这里使用TimeChart

XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles); 
    // mDateFrom and mDateTo are Date Objects 
     // Set the date span here 
    setChartSettings(renderer, "title", "x_tiele", "y_title", 
      mDateFrom.getTime(), 
      mDateTo.getTime(), 0, 1, Color.GRAY, Color.LTGRAY); 

    XYMultipleSeriesDataset dataset = buildDateDataset(titles, mHashMapGroupedEntites); 

    return ChartFactory.getTimeChartView(context, dataset, 
       renderer, "yyyy/MM/dd HH"+":00:00"); 

试试这个。

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    dataset.addSeries(diaSeries); 

    XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer(); 

    mrenderer.setXAxisMin(YOUR_DATE_MIN); 
    mrenderer.setXAxisMax(YOUR_DATE_MAX); 

    // XYSeriesRenderer renderer = new XYSeriesRenderer(); 
    mrenderer.setColor(Color.RED); 
    mrenderer.setPointStyle(PointStyle.DIAMOND); 
    mrenderer.setFillPoints(true); 
    // mrenderer.addSeriesRenderer(renderer); 

    graphLayout.addView(ChartFactory.getTimeChartView(this, dataset, mrenderer, "MM/dd/yyyy")); 
+0

你可以回顾我所做的问题和编辑吗? –

+0

我不确定,但你可以试试这个 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”)); –

+0

我把代码放在我的答案中。 –