2010-05-25 16 views

Respuesta

35

Desafortunadamente, dado que la API del marco aún no se ha estabilizado, no hay tantos tutoriales disponibles, y muchos de los que existen ya están desactualizados. Las aplicaciones de ejemplo son realmente las mejores fuentes para ver cómo trabajar con el marco.

Por ejemplo, para proporcionar etiquetas de ejes personalizados, consulte el archivo de origen CPTestAppBarChartController.m de CPTestApp-iPhone. El gráfico de barras en ese ejemplo tiene etiquetas de los ejes X personalizada definidos por el siguiente código:

// Define some custom labels for the data elements 
x.labelRotation = M_PI/4; 
x.labelingPolicy = CPAxisLabelingPolicyNone; 
NSArray *customTickLocations = [NSArray arrayWithObjects:[NSDecimalNumber numberWithInt:1], [NSDecimalNumber numberWithInt:5], [NSDecimalNumber numberWithInt:10], [NSDecimalNumber numberWithInt:15], nil]; 
NSArray *xAxisLabels = [NSArray arrayWithObjects:@"Label A", @"Label B", @"Label C", @"Label D", @"Label E", nil]; 
NSUInteger labelLocation = 0; 
NSMutableArray *customLabels = [NSMutableArray arrayWithCapacity:[xAxisLabels count]]; 
for (NSNumber *tickLocation in customTickLocations) { 
    CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: [xAxisLabels objectAtIndex:labelLocation++] textStyle:x.labelTextStyle]; 
    newLabel.tickLocation = [tickLocation decimalValue]; 
    newLabel.offset = x.labelOffset + x.majorTickLength; 
    newLabel.rotation = M_PI/4; 
    [customLabels addObject:newLabel]; 
    [newLabel release]; 
} 

x.axisLabels = [NSSet setWithArray:customLabels]; 

En primer lugar, se establece la política de etiquetado eje para CPAxisLabelingPolicyNone para dejar el marco sabe se le proporciona etiquetas personalizadas, a continuación, crear una una matriz de etiquetas con sus ubicaciones correspondientes, y finalmente asigna esa matriz de etiquetas a la propiedad axisLabels en el eje X.

+0

¿cómo podemos agregar etiquetas para cada sector en el gráfico circular? gracias – Pooja

+0

customTickLocations contiene 5,10 ... está relacionado con el rango del eje x? como tengo valores de contaje del eje x en segundos, entonces ¿cuáles serían los valores en las ubicaciones personalizadas en mi caso ... gracias – Pooja

+1

@Pooja Etiquetas personalizadas se pueden agregar para los gráficos circulares de la misma manera que en la respuesta ... eres Bienvenido. Puede trabajar en ubicaciones de ticks personalizados como se menciona en [esta respuesta SO] (http://stackoverflow.com/questions/3208025/core-plot-still-do-not-understand-how-to-have-custom-label- y-ticks) ... de nada! – tipycalFlow

0

Para proporcionar etiquetas personalizadas formateadas, puede asignar un formateador a la propiedad labelFormatter de un eje. También se puede usar la NSNumberFormatter configurado a sus preferencias, por ejemplo .:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
// ... configure formatter 

CPTXYAxis *y = axisSet.yAxis; 
y.labelFormatter = formatter; 

O, si necesita el formato más específico, puede subclase NSNumberFormatter y reemplazar el método stringForObjectValue: hacer el formato exacto que desea.

Cuestiones relacionadas