2012-03-28 17 views
5

In realtà nella mia app ho creato un grafico utilizzando achartEngine. In questi nell'asse x inizialmente visualizzo il valore da 1 a 31. Ora invece di visualizzare questo è possibile visualizzare valori come 1-03-2012 2-03-2012 3-03-2012 .... e così via per l'ultimo giorno del mese corrente e quando raggiunge l'ultimo giorno del mese corrente, ovvero il 31-03-2012, il valore visualizzato successivamente dovrebbe essere 1-04-2012 2-04-2012 ... e così via. Il codice che ho usato durante la visualizzazione di valori come 1 2 3 4 5 ... è riportato di seguito ... chiunque può aiutarmi a risolvere questo problema.Come impostare il valore nell'etichetta dell'asse x in achartengine

codice

per grafico

renderer = new XYMultipleSeriesRenderer(2);   
    int length = colors.length;  
    for (int i = 0; i < length; i++) 
    { 
     XYSeriesRenderer r = new XYSeriesRenderer(); 
     r.setColor(colors[i]); 
     r.setPointStyle(styles[i]); 
     renderer.addSeriesRenderer(r); 
    } 

    int rendererLength = renderer.getSeriesRendererCount(); 
    for (int i = 0; i < rendererLength; i++) 
    { 
     ((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true); 
    }    
    renderer.setAxisTitleTextSize(12); 
    renderer.setChartTitleTextSize(12); 
    renderer.setLabelsTextSize(10); 
    renderer.setLegendTextSize(12); 
    renderer.setPointSize(5f); 

    renderer.setApplyBackgroundColor(true); 
    renderer.setBackgroundColor(Color.parseColor("#F5F5F5")); 
    renderer.setMarginsColor(Color.parseColor("#F5F5F5")); 

    renderer.setChartTitle("Weight/Temperature"); 
    renderer.setXLabels(20); 
    renderer.setXTitle(sdFormatter.format(currentDate));   
    renderer.setXAxisMin(1); 
    renderer.setXAxisMax(nMaxDay); 
    renderer.setXLabelsAlign(Align.CENTER); 

    renderer.setYLabels(10); 
    renderer.setYTitle("Weight", 0); 
    renderer.setYTitle("Temperature", 1); 
    renderer.setYAxisMin(10, 0); 
    renderer.setYAxisMax(90, 0); 
    renderer.setYAxisMin(10, 1); 
    renderer.setYAxisMax(90, 1); 
    renderer.setYAxisAlign(Align.LEFT, 0); 
    renderer.setYAxisAlign(Align.RIGHT, 1); 
    renderer.setYLabelsAlign(Align.LEFT, 0); 
    renderer.setYLabelsAlign(Align.RIGHT, 1); 

    renderer.setAxesColor(Color.LTGRAY); 
    renderer.setLabelsColor(Color.parseColor("#5f5f5f"));   
    renderer.setShowGrid(true); 
    renderer.setGridColor(Color.GRAY); 

screenshot girato enter image description here

+0

quale classe si è utilizzato in AchartEngineDemo – Abhi

+0

XYMultipleSeriesRenderer (oggetto di questo contengono attributi del grafico come il colore) – AndroidDev

+0

quale file .java? – Abhi

risposta

13

classe Utilizzare AverageTemperatureChart dalla demo.

setChartSettings(renderer, "Average temperature", "Month", "Temperature", 0.5, 5.5, 0, 4, 
     Color.LTGRAY, Color.LTGRAY); 

quindi modificare in questo modo e controllare i cambiamenti

for (int i = 0; i < titles.length; i++) 
    { 
     x.add(new double[] { 1, 2, 3, 4 }); 
     } 

aggiungere quattro solo per demo

E aggiungere etichette attraverso renderer.addTextLabel();

es:

String[] date={"1-3-2012","1-4-2012","1-5-2012","1-6-2012"}; 
for (int i = 0; i < date.length; i++) 
    { 

    renderer.addTextLabel(i+1, date[i]); 
    } 
    renderer.setXLabelsAlign(Align.CENTER); 
    renderer.setXLabels(0); 
+0

non c'è CustomLabelFormatter o qualcosa simile che ti permetta di generare etichette al volo? questa biblioteca è così grande PITA ... – hotzen

4

Oltre alla risposta di Abhi, se si desidera aggiungere griglia per X Etichette quindi aggiungere riga successiva:

renderer.setShowCustomTextGrid(true); 
Problemi correlati