2012-09-14 72 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

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