2

我想绘制一个 XY 折线图,在 Y 轴上有一些双精度值,在 X 轴上有一些字符串值。但是 XYSeries 只采用 double/long 值。那么,有什么办法可以在 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]);
      }
4

2 回答 2

2

使用时间序列:

fDates 作为日期数组

 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 作为字符串数组 - 使用 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]);
  }

参考资料:

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

于 2013-08-15T05:52:15.823 回答
0

您不能在任何轴上使用字符串绘制图形。

解释:

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

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

所以对不起朋友,但这是不可能的..除非您转换字符串或为其内容创建引用..

于 2013-08-15T05:35:41.747 回答