2012-09-14 19 views
1

我試圖做一個存儲soem特定日期的動物體重的情節。我有兩個變量,日期和重量的重量級。AcharEngine製作日期相關圖表

這是我使用的代碼。

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軸上顯示任何內容,也沒有顯示圖線。

其次,如果我想顯示從特定日期到另一日期的數據?像從二月到三月等?

+1

你確定TimeSeries包含任何東西嗎? –

+0

ofc它,我已檢查它 –

回答

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");