2012-08-24 42 views
5

Tener dificultades para obtener múltiples ejes Y para aparecer en un gráfico usando achartengine en Android. He tratado de copiar lo que se hizo en la demostración "Gráfico de temperatura múltiple" aquí: http://code.google.com/p/achartengine/source/browse/trunk/achartengine/demo/org/achartengine/chartdemo/demo/chart/MultipleTemperatureChart.java pero no mostrará el eje Y a la derecha, ni mostrará las etiquetas de Yaxis que quiero mostrar.Achartengine en Android - eje Y múltiple

¿Alguna idea de lo que mi código podría estar haciendo mal:

mCurrentCostSeries = new XYSeries(costTitle); 
    mCurrentEffSeries = new XYSeries(effTitle); 

    mDataset.addSeries(mCurrentCostSeries); 
    mDataset.addSeries(mCurrentEffSeries); 



    int[] colors = new int[] { Color.RED, Color.YELLOW }; 
    PointStyle[] styles = new PointStyle[] { PointStyle.POINT, PointStyle.DIAMOND }; 
    mRenderer = new XYMultipleSeriesRenderer(2); 
    setRenderer(mRenderer, colors, styles); 
    int length = mRenderer.getSeriesRendererCount(); 
    for (int i = 0; i < length; i++) { 
     XYSeriesRenderer r = (XYSeriesRenderer) mRenderer.getSeriesRendererAt(i); 
     r.setLineWidth(3f); 
    } 

    mRenderer.setApplyBackgroundColor(true); 
    mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50)); 

    mRenderer.setAxesColor(Color.LTGRAY); 
    mRenderer.setZoomButtonsVisible(true); 
    mRenderer.setPointSize(10); 

    mRenderer.setChartTitle("Fuel Efficiency and Cost"); 


    mRenderer.setShowGrid(true); 
    mRenderer.setXLabelsAlign(Align.RIGHT); 
    mRenderer.setYLabelsAlign(Align.RIGHT); 


    mRenderer.setYTitle(cunits,0); 

    mRenderer.setLabelsColor(Color.WHITE); 
    mRenderer.setXLabelsColor(Color.GREEN); 
    mRenderer.setYLabelsColor(0, colors[0]); 
    mRenderer.setYLabelsColor(1, colors[1]); 



    mRenderer.setYTitle(dunits, 1);  // these lines SHOULD set the second Y axis 
    mRenderer.setYAxisAlign(Align.RIGHT, 1);// (series=1) but have no effect. 
    mRenderer.setYLabelsAlign(Align.LEFT, 1); 

que estoy usando un gráfico de series de tiempo en lugar de un gráfico cubicline los usos de demostración pero por lo demás las cosas deberían ser casi lo mismo.

Respuesta

5

Asegúrese de asignar un número de escala diferente para la segunda serie. Por ejemplo, inicialice el mCurrentEffSeries de esta manera y funcionará:

mCurrentEffSeries = new XYSeries(effTitle, 1); 
+1

¡Impresionante! Eso fue todo. Gracias, Dan. Me gusta el achartengine y las demostraciones son agradables, pero falta documentación. Lo bueno es que StackOverflow está aquí – Martin

Cuestiones relacionadas