2013-06-07 10 views
5

Ottiene il diagramma a barre del blocco come indicato di seguito.grafico a barre completo nella schermata di AchartEngine

enter image description here

Ho usato sotto codice per esso.

public void createBarChart(String loanName1,String loanName2){ 
     XYSeries loan1Series = new XYSeries(loanName1); 
     // Creating an XYSeries for Income 
     XYSeries loan2Series = new XYSeries(loanName2); 
     // Adding data to Income and Expense Series 
     double ymax = principleLoan1; 
     if(principleLoan2 > principleLoan1){ 
      ymax = principleLoan2; 
     } 
     if(totalPayment1 > 10000){ 
      totalPayment1 = totalPayment1/1000; 
     } 
     if(totalPayment2 > 10000){ 
      totalPayment2 = totalPayment2/1000; 
     } 
     if(totalPayment1 > totalPayment2){ 
      if(totalPayment1 > ymax){ 
       ymax = totalPayment1; 
      } 
     }else{ 
      if(totalPayment2 > ymax){ 
       ymax = totalPayment2; 
      } 
     } 

     loan1Series.add(1, principleLoan1); 
     loan1Series.add(2, totalPayment1); 

     loan2Series.add(1, principleLoan2); 
     loan2Series.add(2, totalPayment2); 

     // Creating a dataset to hold each series 
     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
     // Adding loan 1 Series to the dataset 
     dataset.addSeries(loan1Series); 
     // Adding loan 2 Series to dataset 
     dataset.addSeries(loan2Series); 

     XYSeriesRenderer loan1Renderer = new XYSeriesRenderer(); 
     loan1Renderer.setColor(Color.parseColor("#b3b3b3")); 
     loan1Renderer.setFillPoints(true); 
     loan1Renderer.setChartValuesTextSize(20); 
     loan1Renderer.setLineWidth(0.2f); 
     loan1Renderer.setDisplayChartValues(true); 

     // Creating XYSeriesRenderer to customize expenseSeries 
     XYSeriesRenderer loan2Renderer = new XYSeriesRenderer(); 
     loan2Renderer.setColor(Color.parseColor("#5eae1f")); 
     loan2Renderer.setFillPoints(true); 
     loan2Renderer.setChartValuesTextSize(20); 
     loan2Renderer.setLineWidth(0.2f); 
     loan2Renderer.setDisplayChartValues(true); 

     XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 
     //multiRenderer.setXLabels(0); 
     multiRenderer.setChartTitle("Difference between Two loan"); 
     //multiRenderer.setXTitle("Year 2012"); 
     // multiRenderer.setYTitle("Amount in Dollars"); 
     multiRenderer.setZoomButtonsVisible(false); 
     multiRenderer.setZoomEnabled(false); 
     multiRenderer.setPanEnabled(false); 
     multiRenderer.setInScroll(true); 
     multiRenderer.setClickEnabled(false); 
     //multiRenderer.setFitLegend(true); 
     //multiRenderer.setLegendHeight(50); 

     //For apply background 
     multiRenderer.setApplyBackgroundColor(true); 
     multiRenderer.setBackgroundColor(Color.WHITE); 
     multiRenderer.setMarginsColor(Color.WHITE); 


     //multiRenderer.setLegendTextSize(20); 

     multiRenderer.setAxisTitleTextSize(20); 
     multiRenderer.setChartTitleTextSize(28); 
     multiRenderer.setLabelsTextSize(18); 
     multiRenderer.setLegendTextSize(18); 
     //multiRenderer.setLegendHeight(5); 
     // for x axis 
     //multiRenderer.setXLabelsAlign(Align.CENTER); 
     multiRenderer.setXLabels(0); 
     //for y axis 
     multiRenderer.setYLabelsAlign(Align.RIGHT); 
     multiRenderer.setYAxisMax(ymax); 

     // main axis 
     multiRenderer.setAxisTitleTextSize(22); 
     multiRenderer.setLabelsColor(Color.BLACK); 

     //multiRenderer.setFitLegend(true); 
     //multiRenderer.setZoomRate(0.2f); 
     //multiRenderer.setMargins(new int[] { 70, 50, 50, 30 }); 
     //multiRenderer.setBarSpacing(0.2f); 
     multiRenderer.addSeriesRenderer(loan1Renderer); 
     multiRenderer.addSeriesRenderer(loan2Renderer); 

     GraphicalView barChart = ChartFactory.getBarChartView(CompareLoanActivity.this, dataset, multiRenderer, Type.DEFAULT); 
     rlBarChart.addView(barChart); 

    } 

E voglio grafico a barre come questo.

enter image description here

grafico superiore è anche lo stesso schema quando ho diminuire.

Grazie

+0

quindi accettare la risposta. –

+0

Posso accettare la mia risposta dopo due giorni. –

+0

perché? Qualche ragione? –

risposta

4

Ho risolto il mio problema impostando sotto proprietà.

multiRenderer.setXAxisMax(3); 
multiRenderer.setXAxisMin(0); 
+0

segna questa risposta come accettata – dd619

+0

Il tuo grafico mostra il grafico a barre completo in tutte le dimensioni del dispositivo? Ho sviluppato un grafico a barre con quasi lo stesso meccanismo ma non è compatibile con i dispositivi incrociati –

+0

Sì, funziona bene in tutti i dispositivi di dimensioni che ho provato. –

Problemi correlati