J'ai presque terminé avec un graphique de noyau-intrigue que j'ai travaillé pendant quelques jours maintenant. Il y a quelque chose que je ne suis toujours pas capable de faire (et je ne trouve pas de documentation à ce sujet), c'est de changer les étiquettes de l'axe des x pour ce dont j'ai besoin. Aujourd'hui, j'ai un axe x avec une étiquette entière affichée toutes les 5 valeurs: "5 10 15 ...", j'ai besoin d'avoir des étiquettes correspondant aux dernières 24 heures. Par exemple, s'il est 15h00, j'aurais besoin de labels comme: "15 16 17 ... 23 0 1 2 .. 15" Je pensais utiliser un NSArray pour cela et le passer à l'espace plot.xRange mais je ne sais pas savoir si c'est la bonne façon de le faire. Voici mon code:iphone, en utilisant un tableau pour définir dans la plage de traceur de base
CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-15)
length:CPDecimalFromFloat(xmax + 15)];
plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-1000)
length:CPDecimalFromFloat(4300)];
// Setup axis
CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;
CPLineStyle *lineStyle = [CPLineStyle lineStyle];
lineStyle.lineColor = [CPColor whiteColor];
lineStyle.lineWidth = 1.0f;
CPTextStyle *cyanStyle = [CPTextStyle textStyle];
cyanStyle.color = [CPColor cyanColor];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:0];
axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"] decimalValue];
axisSet.xAxis.minorTicksPerInterval = 0;
axisSet.xAxis.majorTickLineStyle = lineStyle;
axisSet.xAxis.minorTickLineStyle = lineStyle;
axisSet.xAxis.axisLineStyle = lineStyle;
axisSet.xAxis.majorTickLength = 5.0f;
axisSet.xAxis.labelOffset = 3.0f;
axisSet.xAxis.labelExclusionRanges = [NSArray arrayWithObjects:
[CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-15)
length:CPDecimalFromFloat(15)],
nil];
axisSet.xAxis.visibleRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromInteger(0) length:CPDecimalFromInteger(xmax)];
axisSet.xAxis.labelFormatter = formatter;
axisSet.xAxis.title = @"Hour";
axisSet.xAxis.titleOffset = 25.0f;
axisSet.xAxis.titleLocation = CPDecimalFromFloat(25.0f);
axisSet.xAxis.titleTextStyle = cyanStyle;
Toute aide serait la bienvenue vraiment :) Merci beaucoup, Luc