2012-08-24 5 views
5

Haben Sie eine harte Zeit bekommen mehrere Y-Achse auf einem Diagramm mit Hilfe von Achartegine auf Android zeigen. Ich habe versucht, zu kopieren, was in der "Multiple Temperature Chart" -Demo hier gemacht wurde: http://code.google.com/p/achartengine/source/browse/trunk/achartengine/demo/org/achartengine/chartdemo/demo/chart/MultipleTemperatureChart.java aber es wird nicht die Y-Achse auf der rechten Seite zeigen, noch wird es die Yaxis-Labels zeigen, die ich zeigen möchte.Achartengine auf Android - mehrere Y-Achse

Irgendwelche Ideen, was könnte mein Code falsch tun:

Ich verwende eine Zeitreihe Diagramm
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); 

statt ein cubicline Diagramm der Demo-Anwendungen, aber ansonsten sollten die Dinge fast das gleiche sein.

Antwort

5

Stellen Sie sicher, dass Sie für die zweite Serie eine separate Maßstabsnummer zuweisen. So initialisieren Sie die mCurrentEffSeries auf diese Weise und es wird funktionieren:

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

Awesome! Das war's. Danke, Dan. Ich mag die Achtermaschine und die Demos sind nett, aber es fehlt etwas an Dokumentation. Gute Sache StackOverflow ist hier – Martin

Verwandte Themen