objective c - एक्स-एक्स पर तारीख बढ़ रही है



objective-c datetime (1)

एक्सरेन्ज के लिए स्थान है जहां आप प्लॉट शुरू करना चाहते हैं, उदाहरण के लिए यदि आपको प्लॉट के लिए लोड किए गए डेटा के 5 मिनट (प्रति सेकंड 1 एंट्री मानते हुए) लिया गया था और आप 3 मिनट में शुरू करना चाहते हैं तो आपका स्थान 3 * 60 होगा आपकी लंबाई हमेशा 2 * 60 होगी यदि आप केवल 2 मिनट का डेटा दिखाना चाहते हैं

आप संभवत: x.majorIntervalLength को भी बदलना चाहते हैं, उस मान को नियंत्रित करता है कि एक्स अक्ष के साथ कितनी बार एक प्रमुख टिक रखा जाता है आपकी प्रमुख टिक में आमतौर पर इसके साथ जुड़े लेबल है, इसलिए आप उस मूल्य को केवल 2 मिनट के डेटा के लिए और अधिक उपयुक्त बनाना चाहते हैं

मैं कोर प्लॉट के साथ खेल रहा हूं और डायनामिक डेट एक्स-अक्ष बनाने की कोशिश कर रहा हूं। साजिश का दिनांक उदाहरण से मैंने एक स्थैतिक तिथि अक्ष बनाने में कामयाब हुए हैं, लेकिन किसी भी समय दो मिनट की खिड़की बनाने और एक्सरेन्ज मान अपडेट करना चाहते हैं। मुझे यकीन है कि तारीखों को एक्सरेन्ज मिनट और लम्बाई के मूल्यों के रूप में कैसे पारित किया जाए और एक्स-एक्स पर समय प्रदर्शित करें।

मैंने उदाहरणों को देखा है, लेकिन मैं NSTimeInterval (यदि यह कैसे करना है ...) का उपयोग करने में सक्षम नहीं हैं I

नीचे चित्र है (यदि यह मदद करता है)

नीचे मेरा प्रयास अब तक है; क्या कोई मुझे यह कैसे प्राप्त करने के लिए सलाह दे सकता है?

- (void)loadView {
// Alloc & Init Main View and since the display resolution is 1024x768 take 20 off for labels later
UIView *tmpView = [ [ UIView alloc ] initWithFrame:CGRectMake(0, 0, 1024.0,768.0) ];
[ tmpView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ];
[ tmpView setBackgroundColor:[ UIColor redColor ] ];

// Alloc Graph View
graphView = [ [ CPGraphHostingView alloc ] initWithFrame:CGRectMake(0, 0, 1024.0,768.0) ];
[ tmpView addSubview:[ graphView autorelease ] ];

// Set MainView
[ self setView:[ tmpView autorelease ] ];

}

-(void)viewDidLoad{
[super viewDidLoad];

NSDate *refDate = [NSDate date];

//  NSTimeInterval oneDay = 24 * 60 * 60;
NSTimeInterval oneHour =  60 * 60;
NSTimeInterval fivemin= 5 * 60;
// Create graph from theme
graph = [(CPXYGraph *) [CPXYGraph alloc] initWithFrame:self.view.bounds];

CPTheme *theme = [CPTheme themeNamed:kCPDarkGradientTheme];
[graph applyTheme:theme];
graphView.hostedGraph = graph;

//padding
graph.paddingLeft = 20.0;
graph.paddingTop = 20.0;
graph.paddingRight = 20.0;
graph.paddingBottom = 20.0;

graph.plotAreaFrame.paddingTop=10.0;
graph.plotAreaFrame.paddingLeft=50.0;
graph.plotAreaFrame.paddingRight=35.0;
graph.plotAreaFrame.paddingBottom=50.0;

// Setup scatter plot space
CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
NSTimeInterval xLow = 0.0f;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(xLow) length:CPDecimalFromFloat(oneHour)];
plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(0.0f) length:CPDecimalFromFloat(100.0f)];

//Line Styles
CPLineStyle *lineStyle = [CPLineStyle lineStyle];
lineStyle.lineColor = [CPColor redColor];
lineStyle.lineWidth = 2.0f;
CPLineStyle *majorGridLineStyle = [CPLineStyle lineStyle];
majorGridLineStyle.lineWidth = 0.75;
majorGridLineStyle.lineColor = [[CPColor colorWithGenericGray:0.2] colorWithAlphaComponent:0.75];
CPLineStyle *minorGridLineStyle = [CPLineStyle lineStyle];
minorGridLineStyle.lineWidth = 0.25;
minorGridLineStyle.lineColor = [[CPColor whiteColor] colorWithAlphaComponent:0.1];   

CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;


// X-Axes formatting
CPXYAxis *x = axisSet.xAxis;
x.majorIntervalLength = CPDecimalFromFloat(oneHour);
x.orthogonalCoordinateDecimal = CPDecimalFromString(@"0");
x.minorTicksPerInterval = 0;
x.labelOffset=0;
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateStyle = kCFDateFormatterShortStyle;
CPTimeFormatter *timeFormatter = [[[CPTimeFormatter alloc] initWithDateFormatter:dateFormatter] autorelease];
timeFormatter.referenceDate = refDate;
x.labelFormatter = timeFormatter;
x.majorGridLineStyle = majorGridLineStyle;
x.minorGridLineStyle = minorGridLineStyle;
x.title[email protected]"Time Axis";


//Y-Axes formatting
CPXYAxis *y = axisSet.yAxis;
y.majorIntervalLength = [ [ NSDecimalNumber decimalNumberWithString:@"10.0" ] decimalValue ];
y.orthogonalCoordinateDecimal = CPDecimalFromString(@"0");
y.minorTicksPerInterval = 5;
y.labelOffset = 0.0;  
y.majorGridLineStyle = majorGridLineStyle;
y.minorGridLineStyle = minorGridLineStyle;
y.preferredNumberOfMajorTicks = 10;
y.minorTickLineStyle = nil;
y.labelTextStyle = nil;
y.visibleRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(0.0f) length:CPDecimalFromFloat(100.0f)];
CPConstraints yConstraints = {CPConstraintFixed, CPConstraintFixed};
y.isFloatingAxis=YES;
y.constraints=yConstraints;


// Create a plot that uses the data source method
CPScatterPlot *dataSourceLinePlot = [[[CPScatterPlot alloc] init] autorelease];
dataSourceLinePlot.identifier = @"Date Plot";
dataSourceLinePlot.dataLineStyle = lineStyle;
dataSourceLinePlot.dataSource = self;

[graph addPlot:dataSourceLinePlot];

mydata = [[NSMutableArray alloc]initWithObjects:
          [NSDecimalNumber numberWithInt:0],
          nil ];
//a timer to re-load the graph every 2 seconds and re-draw x-axis 

Timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(testingTimer:) userInfo:nil repeats:YES];

 }


 -(NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot
{
return mydata.count;
 }

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
switch ( fieldEnum ) {
    case CPScatterPlotFieldX:
        return (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:index];
    case CPScatterPlotFieldY:
        return [mydata objectAtIndex:index];
}
return nil;
}


-(void) testingTimer: (NSTimer *) Timer{

//generating random number and add to mydata array
testdata=arc4random() % 100;
[mydata addObject:[NSNumber numberWithInt:testdata]];

[graph reloadData];
count++;
CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(count) length:CPDecimalFromFloat(5*30.0f)];

}




core-plot