Refer to :http://blog.csdn.net/lk_blog/article/details/7645509
Private List<double[]> x = new ArrayList<double[]>(); private List<double[]> values = new ArrayList<double[]>(); private double[] sinValues1 = new double[24];//用于储存曲线的24点取值 private double[] sinValues2 = new double[24]; private XYMultipleSeriesRenderer renderer; private LinearLayout lineChartContainer;//2X-7X中声明图表容器的Layout. |
?
for (int i = 0; i < titles.length; i++) { x.add(new double[] { 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ????????11, 12 ,13,14,15,16,17,18,19,20,21,22,23}); } //List<double[]> values = new ArrayList<double[]>(); //double[] sinValues1 = new double[24]; //double[] sinValues2 = new double[24]; for (int i = 0; i < 24; i++) ????sinValues1[i]=Math.round((Math.sin((360/24)*i*Math.PI/180)*5)*100)/100.0; for (int i = 0; i < 24; i++) ????sinValues2[i]=Math.round((Math.sin(((360/24)*i+90)*Math.PI/180)*5)*100)/100.0; /**/ phase=6; /******/ values.add(sinValues1); values.add(sinValues2); int[] colors = new int[] { Color.BLUE, Color.GREEN }; PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND }; renderer = buildRenderer(colors, styles); int length = renderer.getSeriesRendererCount(); for (int i = 0; i < length; i++) { ((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true); } setChartSettings(renderer, "Valtage", "step", "voltage", 0, 24, -6, 6, Color.LTGRAY, Color.LTGRAY); renderer.setXLabels(24); renderer.setYLabels(15); renderer.setShowGrid(true); renderer.setXLabelsAlign(Align.RIGHT); renderer.setYLabelsAlign(Align.RIGHT); renderer.setZoomButtonsVisible(true); renderer.setPanLimits(new double[] { -10, 30, -20, 20 }); renderer.setZoomLimits(new double[] { -10, 30, -20,20 }); //renderer.setDisplayChartValues(true); // renderer.setChartValuesTextSize(18); View view = ChartFactory.getLineChartView(this, buildDataset(titles, x, values), renderer); view.setBackgroundColor(Color.BLACK); //setContentView(view); lineChartContainer = (LinearLayout) findViewById(R.id.demo_linear_sin_chart); lineChartContainer.addView(view); |
? private XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles) { XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); setRenderer(renderer, colors, styles); return renderer; } private void setRenderer(XYMultipleSeriesRenderer renderer, int[] colors, PointStyle[] styles) { renderer.setAxisTitleTextSize(16); renderer.setChartTitleTextSize(20); renderer.setLabelsTextSize(15); renderer.setLegendTextSize(15); renderer.setPointSize(5f); renderer.setMargins(new int[] { 20, 30, 15, 20 }); int length = colors.length; for (int i = 0; i < length; i++) { XYSeriesRenderer r = new XYSeriesRenderer(); r.setColor(colors[i]); r.setPointStyle(styles[i]); renderer.addSeriesRenderer(r); } } private void setChartSettings(XYMultipleSeriesRenderer renderer, ????????String title, String xTitle, String yTitle, double xMin, ????????double xMax, double yMin, double yMax, int axesColor, ????????int labelsColor) { renderer.setChartTitle(title); renderer.setXTitle(xTitle); renderer.setYTitle(yTitle); renderer.setXAxisMin(xMin); renderer.setXAxisMax(xMax); renderer.setYAxisMin(yMin); renderer.setYAxisMax(yMax); renderer.setAxesColor(axesColor); renderer.setLabelsColor(labelsColor); } private XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); addXYSeries(dataset, titles, xValues, yValues, 0); return dataset; } private void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) { int length = titles.length; for (int i = 0; i < length; i++) { XYSeries series = new XYSeries(titles[i], scale); double[] xV = xValues.get(i); double[] yV = yValues.get(i); int seriesLength = xV.length; for (int k = 0; k < seriesLength; k++) { series.add(xV[k], yV[k]); } dataset.addSeries(series); } } |
在values更新后,要将新values更新到图表,执行:
View view = ChartFactory.getLineChartView(MainActivity.this, buildDataset(titles, x, values), renderer); view.setBackgroundColor(Color.BLACK); lineChartContainer.removeAllViews(); lineChartContainer.addView(view); |
原文:http://www.cnblogs.com/zhlforhe/p/4794826.html