在achartengine中使用字符串而不是双线/长线图

时间:2013-08-15 05:12:55

标签: android achartengine

我想绘制XY线图,Y轴上有一些双值,X轴上有一些String值。但是XYSeries只接受双/长值。那么,有什么办法可以在X轴上使用字符串数组吗?

感谢您的任何建议。

代码:

  //fDates are strings

 XYSeries fPriceseries = new XYSeries("Fuel prices");
     for(int i=0;i<fDates.length;i++)
     {
         long fDate = Long.parseLong(fDates[i]);    
         fPriceseries.add(fDate, fPrice[i]);
     }
     XYSeries fMileageSeries = new XYSeries("Mileage");
      for(int i=0;i<fDates.length;i++)
      {
          long fDate = Long.parseLong(fDates[i]);   
          fMileageSeries.add(fDate, fMileage[i]);
      }

2 个答案:

答案 0 :(得分:2)

使用TimeSeries:

fDates as Date array

 TimeSeries fPriceseries = new TimeSeries("Fuel prices");
 for(int i=0;i<fDates.length;i++)
 {
     fPriceseries.add(fDates[i], fPrice[i]);
 }
 TimeSeries fMileageSeries = new TimeSeries("Mileage");
  for(int i=0;i<fDates.length;i++)
  {
      fMileageSeries.add(fDates[i], fMileage[i]);
  }

fDates as String array - 使用SimpleDateFormat。

 SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

 TimeSeries fPriceseries = new TimeSeries("Fuel prices");

 for(int i=0;i<fDates.length;i++)
 {
     fPriceseries.add(sdf.parse(fDates[i]), fPrice[i]);
 }
 TimeSeries fMileageSeries = new TimeSeries("Mileage");
  for(int i=0;i<fDates.length;i++)
  {
      fMileageSeries.add(sdf.parse(fDates[i]), fMileage[i]);
  }

Referencies:

http://www.achartengine.org/content/javadoc/org/achartengine/model/TimeSeries.html http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:0)

您无法在任何轴上使用字符串绘制图表。

说明:

当我们绘制图表时,我们比较两个值...如3,5或7,22或12.3,10000 ..

相对于整数或双精度绘制字符串,就像比较苹果和橙子一样。

对不起朋友,但不可能..除非你转换字符串或为其内容创建参考..