2012-08-24 42 views
5

Có một thời gian khó nhận được nhiều trục Y để hiển thị trên biểu đồ sử dụng achartengine trên Android. Tôi đã cố gắng sao chép những gì đã được thực hiện trên bản đồ "Nhiều biểu đồ nhiệt độ" ở đây: http://code.google.com/p/achartengine/source/browse/trunk/achartengine/demo/org/achartengine/chartdemo/demo/chart/MultipleTemperatureChart.java nhưng nó sẽ không hiển thị trục Y ở bên phải, cũng như không hiển thị nhãn Yaxis mà tôi muốn hiển thị.Achartengine trên Android - nhiều trục Y

Bất cứ ý tưởng gì mã của tôi có thể làm sai:

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

Tôi đang sử dụng một biểu đồ chuỗi thời gian chứ không phải là một biểu đồ cubicline những ứng dụng bản demo nhưng nếu không điều nên được gần như giống nhau.

Trả lời

5

Đảm bảo bạn phân bổ một số tỷ lệ riêng cho chuỗi thứ hai. Ví dụ: khởi tạo số mCurrentEffSeries theo cách này và nó sẽ hoạt động:

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

Tuyệt vời! Điều đó là vậy đó. Cảm ơn, Dan. Tôi thích achartengine và các bản demo rất hay, nhưng có một chút thiếu tài liệu. Điều tốt StackOverflow là ở đây – Martin

Các vấn đề liên quan