2013-06-07 9 views
5

Ich bekomme Fledermaus-Barchart wie unten.komplettes Balkendiagramm im Bildschirm in AchartEngine

enter image description here

Ich habe unten Code dafür verwendet.

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

    } 

Und ich möchte Balkendiagramm wie dieses.

enter image description here

obere Grafik ist auch gleiche Diagramm, wenn ich verkleinern.

Dank

+0

dann akzeptieren Sie Ihre Antwort. –

+0

Ich kann meine eigene Antwort nach zwei Tagen annehmen. –

+0

warum? Irgendeinen Grund? –

Antwort

4

Ich habe mein Problem, indem unter Eigenschaft gelöst.

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

diese Antwort als akzeptiert markieren – dd619

+0

Ihr Diagramm zeigen vollständige Balkendiagramm in allen Größen Gerät? Ich entwickelte ein Balkendiagramm mit fast gleichen Mechanismus, aber es ist nicht Cross-Device kompatibel –

+0

Ja, es funktioniert gut in allen Größen Geräte Ich habe es getestet. –