Wie füge ich Etiketten CPBarPlot barplots?
Frage
Ich bin völlig neu zu Core-Plot und habe eine Arbeitsbalkendiagramm, aber die visuellen ist irgendwie nutzlos für mich, wenn ich nicht weiß, welches Objekt in jedem Balken dargestellt. Ich habe gesehen, dass es eine Methode ‚fieldIdentifiers‘, aber nicht wissen, wie sie umzusetzen, noch finde ich alle Unterlagen (wenn dies auch die richtige Methode) genannt wird. Können Sie mir in die richtige Richtung lenken? Dank!
Lösung
Um auf manuell die Etiketten für eine Achse in einem Diagramm Core-Plot, werden Sie die labelingPolicy dieser Achse zu CPAxisLabelingPolicyNone
festlegen müssen und liefern die Etiketten selbst. Beispielsweise wird der folgende Code benutzerdefinierte Etiketten in einem Balkendiagramm (gezeichnet von Code, den ich irgendwann auf die iPhone-Beispielanwendung hinzugefügt werden) eingestellt:
CPXYAxisSet *axisSet = (CPXYAxisSet *)barChart.axisSet;
CPXYAxis *x = axisSet.xAxis;
x.labelRotation = M_PI/4;
x.labelingPolicy = CPAxisLabelingPolicyNone;
NSArray *customTickLocations = [NSArray arrayWithObjects:[NSDecimalNumber numberWithInt:1], [NSDecimalNumber numberWithInt:5], [NSDecimalNumber numberWithInt:10], [NSDecimalNumber numberWithInt:15], [NSDecimalNumber numberWithInt:20], nil];
NSArray *xAxisLabels = [NSArray arrayWithObjects:@"Label A", @"Label B", @"Label C", @"Label D", @"Label E", nil];
NSUInteger labelLocation = 0;
NSMutableArray *customLabels = [[NSMutableArray alloc] initWithCapacity:[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];
Dies stellt fünf individuelle Etikett (Label-A, B, C, D und E) an Positionen 1, 5, 10, 15 und 20 auf der X-Achse.