2016-12-06 1 views
0

Ich erstellte eine Grafik-App mit MP Android-Diagramm, ich habe es verwendet, um zwei verschiedene Zeile Datensätze zu plotten. Aber mein Problem ist, dass die Wertelabels für die Xaxis am oberen Rand des Graphen erscheinen. Ich brauche einen Weg, um es nach unten zu schaffen. unten ist mein CodeIch versuche, Werte der X-Achse auf der Unterseite des Diagramms nicht die Spitze zu zeigen, mit MP Android-Diagramm

final LineChart linechart = (LineChart)findViewById(R.id.idlinechart); 

     //created list enties to hold the values 
     List<Entry> valuesCompany1 = new ArrayList<>(); List<Entry> valuesCompany2 = new ArrayList<>(); 
//created entry values to be entered into the lsit entry b 
     Entry c1e1 = new Entry(0f, 100000f); valuesCompany1.add(c1e1); 

     Entry c1e2 = new Entry (1f, 140000f);valuesCompany1.add(c1e2); 

     Entry c1e3 = new Entry(2f,90000f);valuesCompany1.add(c1e3); 

     Entry c1e4 = new Entry (3f, 150000f); valuesCompany1.add(c1e4); 

     Entry c2e1 = new Entry(0f, 50000f); valuesCompany2.add(c2e1); 

     Entry c2e2 = new Entry (1f, 50000f);valuesCompany2.add(c2e2); 

     Entry c2e3 = new Entry(2f,150000f);valuesCompany2.add(c2e3); 

     Entry c2e4 = new Entry (3f, 110000f); valuesCompany2.add(c2e4); 

//so now we create line data to hold the list 
     LineDataSet linedatasetComp1 = new LineDataSet(valuesCompany1, "company 1"); 
     linedatasetComp1.setAxisDependency(YAxis.AxisDependency.LEFT); 
      linedatasetComp1.setColor(Color.BLUE); 
     LineDataSet linedatasetComp2 = new LineDataSet(valuesCompany2, "company 2"); 
     linedatasetComp2.setAxisDependency(YAxis.AxisDependency.LEFT); 
      linedatasetComp2.setColor(Color.RED); 

     List<ILineDataSet> iLinedata = new ArrayList<ILineDataSet>(); 
     iLinedata.add(linedatasetComp1); //adding the line data sets into the line data list 
     iLinedata.add(linedatasetComp2); 
//setting the Ilinedata list into line data 
     LineData linedata = new LineData(iLinedata); 

      //setting the line data into line chart 
     linechart.setData(linedata); 
     linechart.invalidate(); //refreshing the line chart 

      //Saving the picture to galery 
Button savebutton = (Button)findViewById(R.id.button); 
      savebutton.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
          linechart.saveToGallery("new Line chart", 150); 
          Toast.makeText(getApplicationContext(), "graph saved ", Toast.LENGTH_LONG).show(); 
        } 
      }); 

      final String[] Quaters = {"Q1", "Q2", "Q3", "Q4"}; 

      IAxisValueFormatter valueFormater = new IAxisValueFormatter() { 
        @Override 
        public String getFormattedValue(float value, AxisBase axis) { 
          return Quaters[(int) value]; 

        } 

        @Override 
        public int getDecimalDigits() { 
          return 0; 
        } 
      }; 
      XAxis xAxis = linechart.getXAxis(); 
      xAxis.setGranularity(1f); 
      xAxis.setValueFormatter(valueFormater); 
     Description desc = new Description(); 
     desc.setText("A graph comparing revenuews of two companies "); 
     desc.setEnabled(true); 
     desc.setPosition(0,0); 
     desc.setTextColor(Color.BLACK); 
     linechart.setDescription(desc); 
+0

Eine solche Funktionalität haben nur 'BarChar' und' CombinedChart'. –

+0

überprüfen Sie die Antwort, ich habe rsolved es – ade

Antwort

4

Ich weiß nicht, ob Linechart diese Option hat, aber im Falle muss es sich einfach in die XAxis die Position wie diese erhalten einstellen:

linechart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); 

Hoffe, es hilft !

+0

Ja vielen Dank. Ich habe ein Xaxis-Objekt erstellt und die Position dafür festgelegt, danke – ade

0

Verwenden MPAndroid Chart-Version 2.2.4 oder höher und verwenden Sie den Code

mChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); 

wie gesagt von Ponchotg

Verwandte Themen