2012-03-28 43 views
5

En realidad en mi aplicación he creado un gráfico usando achartEngine. En estos en el eje x inicialmente estoy mostrando el valor de 1 a 31. Ahora, en lugar de mostrar esto, es posible mostrar el valor 1-03-2012 2-03-2012 3-03-2012 .... y así sucesivamente para el último día del mes actual y cuando llegue al último día del mes actual, es decir, 31-03-2012, la visualización del valor después de esa fecha debería ser 1-04-2012 2-04-2012 ... y así sucesivamente. El código que he usado mientras se muestra un valor como 1 2 3 4 5 ... se da a continuación ... puede ayudarme alguien a resolver esto.Cómo establecer el valor en la etiqueta del eje x en achartengine

código

para el gráfico de

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

pantalla disparó enter image description here

+0

la clase que haya utilizado en AchartEngineDemo – Abhi

+0

XYMultipleSeriesRenderer (objeto de esto contiene atributos de gráfico como el color) – AndroidDev

+0

que archivo .java? – Abhi

Respuesta

13

clase Uso AverageTemperatureChart de la demostración.

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

luego cambio como éste y comprobar los cambios

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

añadir cuatro sólo para demostración

Y añadir etiquetas a través renderer.addTextLabel();

ejemplo:

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

no hay CustomLabelFormatter o algo similar que le permita generar etiquetas sobre la marcha? esta biblioteca es una gran PITA ... – hotzen

4

Además de la respuesta de Abhi, si desea agregar rejilla de etiquetas X a continuación, añadir la fila siguiente:

renderer.setShowCustomTextGrid(true); 
Cuestiones relacionadas