NMJ
NMJ

Reputation: 39

Android Chart with dates on x-axis

Here I'm trying to show a chart with dates on x-axis where the values are retrieved from web-server:

// Our first data

Date[] x = dates_array; // x values!

double[] y =  readings_array; // y values!



                XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); // Holds a collection of XYSeriesRenderer and customizes the graph
                XYSeriesRenderer renderer = new XYSeriesRenderer(); // This will be used to customize line 1
                XYSeriesRenderer renderer2 = new XYSeriesRenderer(); // This will be used to customize line 2
                mRenderer.addSeriesRenderer(renderer);
                mRenderer.addSeriesRenderer(renderer2);
                TimeSeries series = new TimeSeries("peak flow"); 
                for( int i = 0; i < x.length; i++)
                {
                    series.add(x[i], y[i]);
                }

                // Our second data
            int[] x2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // x values!




                int[] y2 =  { 145, 123, 111, 100, 89, 77, 57, 45, 34, 30}; // y values!
                TimeSeries series2 = new TimeSeries("Line2"); 
                for( int i = 0; i < x2.length; i++)
                {
                    series2.add(x2[i], y2[i]);

                }

                XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
                dataset.addSeries(series);
                dataset.addSeries(series2);



                // Customization time for line 1!
                renderer.setColor(Color.WHITE);
                renderer.setPointStyle(PointStyle.SQUARE);
                renderer.setFillPoints(true);
                // Customization time for line 2!
                renderer2.setColor(Color.YELLOW);
                renderer2.setPointStyle(PointStyle.DIAMOND);
                renderer2.setFillPoints(true);



                Intent intent = ChartFactory.getTimeChartIntent(getApplicationContext(), dataset,
                     mRenderer, "DD MMM yyyy");
                startActivity(intent);
            }
        });

It works fine with the y-axis but on the x-axis the values shown are random values not my values! Any help please?

Upvotes: 2

Views: 2140

Answers (1)

Dan D.
Dan D.

Reputation: 32391

In the TimeSeries you should use the add(Date x, double y) method, not the add(double x, double y) one.

If you want the X axis labels to be exactly the dates of your data then do this:

renderer.setXRoundedLabels(false);

Upvotes: 1

Related Questions