Android Chart with dates on x-axis

我是研究僧i 提交于 2019-12-11 02:15:56

问题


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?


回答1:


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


来源:https://stackoverflow.com/questions/13216619/android-chart-with-dates-on-x-axis

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!