Android – Draw a Graph in Android

androidgraphsqlite

I wanted to draw a graph in Android such that on X axis I want Months like Jan, Feb, March, Apr, May, Jun, Aug, Sep, Oct, Nov, Dec and on Y axis the amount how much you spending in that particular month.

I have a code that draw the graph on an android:-

mySimpleXYPlot = (XYPlot) findViewById(R.id.mySimpleXYPlot);
        Number[] series1Numbers = { 1, 8, 5, 2, 7, 4 };
        Number[] series2Numbers = { 4, 6, 3, 8, 2, 10 };
        XYSeries series1 = new SimpleXYSeries(Arrays.asList(series1Numbers),
        SimpleXYSeries.ArrayFormat.Y_VALS_ONLY,"Series1");
        XYSeries series2 = new SimpleXYSeries(Arrays.asList(series2Numbers),
        SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, "Series2");

        LineAndPointFormatter series1Format = new LineAndPointFormatter(
                Color.rgb(0, 200, 0), // line color
                Color.rgb(0, 100, 0), // point color
                Color.rgb(150, 190, 150)); // fill color (optional)
                mySimpleXYPlot.addSeries(series1, series1Format);
                mySimpleXYPlot.addSeries(
                series2,
                new LineAndPointFormatter(Color.rgb(0, 0, 200),
                Color.rgb(0, 0, 100), Color.rgb(150, 150, 190)));
                mySimpleXYPlot.setTicksPerRangeLabel(3);
                }

But I want on X Axis the Months and on Y axis particular amount they spend in that month. and these values are coming from database, month in which they are spending money in the form of mon the reuqired month they spend and Name contains the value they spend in that month.

try {
        myDB = this.openOrCreateDatabase("Expense_db", MODE_PRIVATE, null);

        Cursor c = myDB.rawQuery("SELECT project_android.Month AS Month_Real, " +
                  "SUM(Total) AS OrderTotal FROM project_android " +
                  "WHERE Year='"+value1+"' " +
                  "GROUP BY project_android.Month " , null);

                     int Column1 = c.getColumnIndex("Month_Real");
                     int Column2 = c.getColumnIndex("OrderTotal");
                     //int current=0;
                  // Check if our result was valid.
                     c.moveToFirst();
                     if (c != null) {
                      // Loop through all Results
                     do {
                       mon = c.getString(Column1);               
                       Name = c.getDouble(Column2);
                       Log.i(TAG, "Testing_value_graph_month: " + Name + " | " + mon + " " );

                     }while(c.moveToNext());
                     c.close();
                     }
                     }
    catch(Exception e) {
        Log.e("Error", "Error", e);
       } finally {
        if (myDB != null)
         myDB.close();
       }

Any help will be appreciated..!

Best Solution

I used this

Click Here

code for same requirement hope it will help you