1

I have edited my question...

Here is the code I am using, I am adding weight of an animal with time.

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

It never shows any value on x axis, i-e time. I am using LinearLayout. Kindly tell me what is wrong. Also no Graph line is showing.

Secondly, What If I want to show data from specific date to another date?

Muhammad Umar
  • 11,391
  • 21
  • 91
  • 193

2 Answers2

4

You have two options here:

  • You keep using a LineChart and add custom labels while disabling the regular ones:

    renderer.setXLabels(0); renderer.addXTextLabel(date.getTime(), "Label");

  • You use a TimeChart which is a LineChart displaying time values using a format provided by you, instead of the LineChart.

Dan D.
  • 32,246
  • 5
  • 63
  • 79
1

umar. Check my following code. I use a TimeChart here.

    XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
    // mDateFrom and mDateTo are Date Objects
        // Set the date span here
    setChartSettings(renderer, "title", "x_tiele", "y_title", 
            mDateFrom.getTime(),
            mDateTo.getTime(), 0, 1, Color.GRAY, Color.LTGRAY);

    XYMultipleSeriesDataset dataset = buildDateDataset(titles, mHashMapGroupedEntites);

    return ChartFactory.getTimeChartView(context, dataset,
                renderer, "yyyy/MM/dd HH"+":00:00");

Try this.

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    dataset.addSeries(diaSeries);

    XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();

    mrenderer.setXAxisMin(YOUR_DATE_MIN);
    mrenderer.setXAxisMax(YOUR_DATE_MAX);

    // XYSeriesRenderer renderer = new XYSeriesRenderer();
    mrenderer.setColor(Color.RED);
    mrenderer.setPointStyle(PointStyle.DIAMOND);
    mrenderer.setFillPoints(true);
    // mrenderer.addSeriesRenderer(renderer);

    graphLayout.addView(ChartFactory.getTimeChartView(this, dataset, mrenderer, "MM/dd/yyyy"));
Zhenghong Wang
  • 2,117
  • 17
  • 19
  • I'm not sure but you can try this 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")); – Zhenghong Wang Sep 15 '12 at 11:16