2016-10-09 2 views
3

ich MPAndroidChart wie dies für meinen app setzen:Wie die x-Achsenbeschriftung mit MPAndroidChart

enter image description here

aber ich kann nicht Tag hinzufügen, dass

+0

Was ist mit dem zeigen, was Sie bisher _tried_? – SOFe

+0

Ich glaube nicht, dass Sie die vorhandenen Achsenbeschriftungen "gruppieren" können. Ich denke jedoch, dass die API eine Methode zum Ändern der Labels hat. Siehe http://stackoverflow.com/questions/27061803/how-to-set-values-for-xlabels-and-ylabels-in-mapandroidchart –

+0

Ich hatte das Label gezeigt, aber die Position des Labels ist falsch, weil der getFormattedValue immer zurückgeben 0,4,8,12,16,20; – kemp

Antwort

1

Sie AxisValueFormatter außer Kraft setzen kann

ie:

xAxis.setValueFormatter(new AxisValueFormatter() { 
      @Override 
      public String getFormattedValue(float value, AxisBase axis) { 
       return "YOUR_TEXT"; // here you can map your values or pass it as empty string 
      } 

      @Override 
      public int getDecimalDigits() { 
       return 0; //show only integer 
      } 
     }); 

Sie können wählen c Geben Sie den Wert der Gruppe ein, um den Gruppennamen zuzuordnen, andere sind leer. das wäre der einfachste Weg.

+0

danke für Ihre Antwort .aber der Rückgabewert ist immer 0,4, 8, 12, 16, 20, wenn ich getFormattedValue (float-Wert, AxisBase-Achse) und mein Mittelpunkt Wert ist 3,9,15,21.and i wird mein Etikett Position ist falsch – kemp

11

Haben Sie anstelle dieser Werte Ihr Tag benötigen?

Wenn ja, dann geht es hier die Methode dazu.

Fügen Sie Ihre XAxis Labels auf ein ArrayList

final ArrayList<String> xLabel = new ArrayList<>(); 
    xLabel.add("9"); 
    xLabel.add("15"); 
    xLabel.add("21"); 
    xLabel.add("27"); 
    xLabel.add("33"); 

    // or use some other logic to save your data in list. For ex. 
    for(i=1; i<50; i+=2) 
    { 
     xLabel.add(""+3*i); 
    } 

dann im setValueFormatter dieses Label verwenden.
Ex:

XAxis xAxis = mChart.getXAxis(); 
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
    xAxis.setDrawGridLines(false); 
    xAxis.setValueFormatter(new IAxisValueFormatter() { 
     @Override 
     public String getFormattedValue(float value, AxisBase axis) { 
      return xLabel.get((int)value); 
     } 
    }); 

Ergebnis:

enter image description here

+0

danke Mann, ich habe das Problem auch, beantwortet Ihre Lösung mein Problem. –

+3

OK mein schlechtes, danke hübsche Frau ~ wirklich. –

+0

Arbeit für mich, Großartig! –

0

finde ich eine andere Lösung für dieses Problem. versuche, diese params hinzuzufügen

float groupSpace = 0.06f; 
float barSpace = 0.02f; 
mChart.setData(data); 
mChart.groupBars(0f, groupSpace, barSpace); 
Verwandte Themen