2013-01-03 97 views
2

我使用AChartEngine在我的Android應用程序中創建一個簡單的條形圖。我想知道如何設置出現在每個條的頂部的標籤(圖表標籤)的方向(垂直)。在我讀過的教程中,SimpleSeriesRenderer類有setChartvalueAngle方法,但這種方法似乎並不存在(編譯時錯誤+不在Javadoc中)。請幫忙嗎?如何使用aChartEngine設置圖表值標籤方向?

回答

0

在這裏你可以創建標籤作爲自己choice..for例子..

 XYSeries incomeSeries = new XYSeries("Income"); 
     // Creating an XYSeries for Expense 
     XYSeries expenseSeries = new XYSeries("Expense"); 
     // Adding data to Income and Expense Series 
     for(int i=0;i<x.length;i++){ 
      incomeSeries.add(i,income[i]); 
      expenseSeries.add(i,expense[i]); 
     } 

     // Creating a dataset to hold each series 
     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
     // Adding Income Series to the dataset 
     dataset.addSeries(incomeSeries); 
     // Adding Expense Series to dataset 
     dataset.addSeries(expenseSeries); 

     // Creating XYSeriesRenderer to customize incomeSeries 
     XYSeriesRenderer incomeRenderer = new XYSeriesRenderer(); 
     incomeRenderer.setColor(Color.rgb(130, 130, 230)); 
     incomeRenderer.setFillPoints(true); 
     incomeRenderer.setLineWidth(2); 
     incomeRenderer.setDisplayChartValues(true); 

     // Creating XYSeriesRenderer to customize expenseSeries 
     XYSeriesRenderer expenseRenderer = new XYSeriesRenderer(); 
     expenseRenderer.setColor(Color.rgb(220, 80, 80)); 
     expenseRenderer.setFillPoints(true); 
     expenseRenderer.setLineWidth(2); 
     expenseRenderer.setDisplayChartValues(true); 

     // Creating a XYMultipleSeriesRenderer to customize the whole chart 
     XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 
     multiRenderer.setXLabels(0); 
     multiRenderer.setChartTitle("Income vs Expense Chart"); 
     multiRenderer.setXTitle("Year 2012"); 
     multiRenderer.setYTitle("Amount in Dollars"); 
     multiRenderer.setZoomButtonsVisible(true); 
     for(int i=0; i< x.length;i++){ 
      multiRenderer.addXTextLabel(i, mMonth[i]); 
     } 

     // Adding incomeRenderer and expenseRenderer to multipleRenderer 
     // Note: The order of adding dataseries to dataset and renderers to multipleRenderer 
     // should be same 
     multiRenderer.addSeriesRenderer(incomeRenderer); 
     multiRenderer.addSeriesRenderer(expenseRenderer); 

     // Creating an intent to plot bar chart using dataset and multipleRenderer 
     Intent intent = ChartFactory.getBarChartIntent(getBaseContext(), dataset, multiRenderer, Type.DEFAULT); 

     // Start Activity 
     startActivity(intent); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 
} 

試試這個,它可以幫助你..

+0

感謝您的回答。不幸的是,這並不適用於我 - 我的代碼與您的答案類似,只是我使用了'SimpleSeriesRender',其中'XYSeriesRenderer'繼承自任何。我沒有看到任何方法來更改圖表**值**標籤的方向 – Ryan

1

使用的API renderer.setXLabelsAngle(90);