Warum kann ich Zecken-Core-Plot Datum-Achse nicht kontrollieren?
Frage
Ich habe einen Core-Plot Streudiagramm, das große zu funktionieren scheint. Die x-Achse zeigt Datum / Zeit, die y einen Wert von 0 bis 500-Achse. Ich habe die x-Achse wie folgt:
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:
CPDecimalFromFloat(maxTime - 2*60*60*24)
length:CPDecimalFromFloat(2.5*60*60*24)];
plotSpace.globalXRange = [CPPlotRange plotRangeWithLocation:
CPDecimalFromFloat(minTime - 1.5*60*60*24)
length:CPDecimalFromFloat(maxTime - minTime + 2*60*60*24)];
x.majorIntervalLength = CPDecimalFromFloat(12*60*60);
x.minorTicksPerInterval = 0;
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"M/d H:mm a"];
CPTimeFormatter *timeFormatter = [[[CPTimeFormatter alloc]
initWithDateFormatter:dateFormatter] autorelease];
timeFormatter.referenceDate = [NSDate
dateWithTimeIntervalSinceReferenceDate:0];
x.labelFormatter = timeFormatter;
Meine x-Achse zeigt aufgetragen sind wie folgt:
-(NSNumber *)numberForPlot:(CPPlot *)plot
field:(NSUInteger)fieldEnum
recordIndex:(NSUInteger)index
{
if(fieldEnum == CPScatterPlotFieldX) {
return [NSNumber numberWithDouble:[[(Entry *)
[datapoints objectAtIndex:index] datetime]
timeIntervalSinceReferenceDate]];
}
Soweit ich das beurteilen kann, ist alles genau aufgetragen ist. Aber aus irgendeinem Grunde, treten die Zecken bei 05.00 und 17.00 Uhr, statt Mittag und Mitternacht, als ich würde es vorziehen.
Ich habe versucht, alles - Ändern die xrange und globalXRange Lage und Länge, änderte meine Daten-Set, etc. Aber jedes Mal, wenn die Etikett um 5 Uhr wieder auftauchen und 17.00 Uhr. Kannst du helfen? Dank!
Lösung
5 Stunden klingt wie eine Zeitzone Problem. Versuchen Sie, die timeZone
Eigentum auf Ihrer dateFormatter zu [NSDateFormatter timeZoneForSecondsFromGMT:0]
.