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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top