@SuppressWarnings("deprecation") public void drawGraph( XYPlot plot, List<Number> xseries, List<Number> yseries, String datatitle, String title) { // Log.d(SystemInfo.TIG, TAG + "::drawGraph()"); // set up data series plot.removeSeries(series); series = new SimpleXYSeries(xseries, yseries, datatitle); // create a formatter // TODO solve deprecation waring LineAndPointFormatter format = new LineAndPointFormatter( Color.rgb(0, 200, 0) // line color , Color.rgb(0, 100, 0) // point color , Color.rgb(150, 190, 150)); // fill color (optional) // add series1 and series2 to the XYPlot plot.addSeries(series, format); // Reduce the number of range labels plot.setTicksPerRangeLabel(3); plot.getBackgroundPaint().setAlpha(0); plot.getGraphWidget().getBackgroundPaint().setAlpha(0); plot.getGraphWidget().getGridBackgroundPaint().setAlpha(0); // TODO implement an on-the-fly refresh of the plot // this is just a small "stubbed" redraw for demonstration purposes plot.setDomainStepMode(XYStepMode.SUBDIVIDE); plot.setDomainStepValue(1); plot.setGridPadding(0, 5, 0, 5); plot.setDomainLabel("Time [s]"); if (title.equals(SystemInfo.DB_TABLENAME_BATTERY)) { plot.setTitle(SystemInfo.DB_TABLENAME_BATTERY); plot.setRangeLabel("[%]"); plot.setRangeBoundaries(0, 100, BoundaryMode.FIXED); } else if (title.equals(SystemInfo.DB_TABLENAME_WIFI)) { plot.setTitle(SystemInfo.DB_TABLENAME_WIFI); plot.setRangeLabel("[~mW]"); plot.setRangeBoundaries(0, 500, BoundaryMode.FIXED); } else if (title.equals(SystemInfo.DB_TABLENAME_THREEG)) { plot.setTitle(SystemInfo.DB_TABLENAME_THREEG); plot.setRangeLabel("[~mW]"); plot.setRangeBoundaries(0, 500, BoundaryMode.FIXED); } else if (title.equals(SystemInfo.DB_TABLENAME_BLUETOOTH)) { plot.setTitle(SystemInfo.DB_TABLENAME_BLUETOOTH); plot.setRangeLabel("[~mW]"); plot.setRangeBoundaries(0, 500, BoundaryMode.FIXED); // XXX scale } plot.redraw(); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.poincare); // Rellenar vector RR1 for (int i = 1; i < Representar.RR.size(); i++) { RR1.add(Representar.RR.get(i)); } // Rellenar vector RRaux for (int i = 0; i < Representar.RR.size() - 1; i++) { RRaux.add(Representar.RR.get(i)); Log.i("RRaux", String.valueOf(Representar.RR.get(i))); } // Declarar el Plot mySimpleXYPlot = (XYPlot) findViewById(R.id.plotPoincare); // Configurar el Plot XYSeries series1 = new SimpleXYSeries( RRaux, // Vector a representar en el eje X RR1, // Vector a representar en el eje Y "Poincaré"); // Etiqueta LineAndPointFormatter series1Format = new LineAndPointFormatter( Color.TRANSPARENT, // Color de la línea Color.rgb( Representar.color0, Representar.color1, Representar.color2), // Color de los puntos null); // Color de relleno // Propiedades para configurar el Plot mySimpleXYPlot.addSeries(series1, series1Format); mySimpleXYPlot.setTicksPerRangeLabel(4); mySimpleXYPlot.disableAllMarkup(); mySimpleXYPlot.getBackgroundPaint().setAlpha(0); mySimpleXYPlot.getGraphWidget().getBackgroundPaint().setAlpha(0); mySimpleXYPlot.getGraphWidget().getGridBackgroundPaint().setAlpha(0); // Redibujar el Plot mySimpleXYPlot.redraw(); // Configuración boundaries mySimpleXYPlot.calculateMinMaxVals(); // Cálculo del valor mínimo y máximo minXY = new PointF( mySimpleXYPlot.getCalculatedMinX().floatValue(), mySimpleXYPlot.getCalculatedMinY().floatValue()); maxXY = new PointF( mySimpleXYPlot.getCalculatedMaxX().floatValue(), mySimpleXYPlot.getCalculatedMaxY().floatValue()); mySimpleXYPlot.setScrollbarFadingEnabled(true); mySimpleXYPlot.setScrollContainer(true); mySimpleXYPlot.getLayoutManager().remove(mySimpleXYPlot.getLegendWidget()); // Etiquetas vertical y horizontal mySimpleXYPlot.setRangeLabel("RR N+1"); mySimpleXYPlot.setDomainLabel("RR N"); mySimpleXYPlot.getLayoutManager().remove(mySimpleXYPlot.getTitleWidget()); // Márgenes del Plot mySimpleXYPlot.setPlotMargins(10, 10, 10, 10); mySimpleXYPlot.setPlotPadding(10, 10, 10, 10); // Comienzo y fin del plot mySimpleXYPlot.setDomainBoundaries( mySimpleXYPlot.getCalculatedMinX().floatValue() - 10.0, mySimpleXYPlot.getCalculatedMaxX().floatValue() + 10.0, BoundaryMode.FIXED); mySimpleXYPlot.setRangeBoundaries( mySimpleXYPlot.getCalculatedMinY().floatValue() - 10.0, mySimpleXYPlot.getCalculatedMaxY().floatValue() + 10.0, BoundaryMode.FIXED); }