Pooja Gaonkar
Pooja Gaonkar

Reputation: 1566

Using Strings instead of double/long for line chart in achartengine

I want to plot a XY line graph with some double values on Y axis and some String values on X axis. But the XYSeries takes only double/long values. So,is there any way I can use a string array on the X axis?

Thanks for any suggestions.

code:

  //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]);
      }

Upvotes: 2

Views: 1054

Answers (2)

Badaro
Badaro

Reputation: 576

Use 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 - Using 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

Upvotes: 2

Abhishek
Abhishek

Reputation: 882

You cannot plot a graph using string on any axis.

Explanation:

When we plot a graph we compare two values... as in 3,5 or 7,22 or 12.3,10000..

Plotting string with respect to an integer or double,is like comparing apples and oranges.

So m sorry friend but its not possible.. unless you convert the string or create a reference for its contents..

Upvotes: 0

Related Questions