title: Using Epoch time on the X-Axis coreplot
body: <p>Is there a way I can use coreplot scatterplot x-axis with epochtime? This is the plot range that I used.</p>
  
  <pre><code>     plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1329375688) length:CPTDecimalFromFloat(100)];
  </code></pre>
  
  <p>I'm reading the epoch values from a file.</p>
  
  <pre><code> -(void)plot1{
  
    // Start with some simple sanity checks before we kick off
       if ( (self.scatterPlotView1 == nil) || (self.graphData == nil)) {
      NSLog(@"TUTSimpleScatterPlot: Cannot initialise plot without scatterPlotView1 or    data.");
      return;
  }
  
  if ( (self.graph != nil)  ) {
      NSLog(@"TUTSimpleScatterPlot: Graph object already exists.");
      return;
  }
  
  // Create a graph object which we will use to host just one scatter plot.
  
  CPTTimeFormatter *dateTimeFormatterForXAxis;
  
  NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
  [formatter setMaximumFractionDigits:0];  
  
  
  _graph=[[CPTXYGraph alloc] initWithFrame:CGRectMake(0,500,750,500)];
  
  self.scatterPlotView1.hostedGraph = _graph;
  
  // Add some padding to the graph, with more at the bottom for axis labels.
  self.graph.plotAreaFrame.paddingTop = 20.0f;
  self.graph.plotAreaFrame.paddingRight = 10.0f;
  self.graph.plotAreaFrame.paddingBottom = 30.0f;
  self.graph.plotAreaFrame.paddingLeft= 35.0f;
  
  // Tie the graph we've created with the hosting view.
  self.scatterPlotView1.hostedGraph = self.graph;
  
  // If you want to use one of the default themes - apply that here.
  [self.graph applyTheme:[CPTTheme themeNamed:kCPTPlainWhiteTheme]];
  
  // Create a line style that we will apply to the axis and data line.
  CPTMutableLineStyle *lineStyle = [CPTMutableLineStyle lineStyle];
  CPTMutableLineStyle *gridStyle = [CPTMutableLineStyle lineStyle];
  CPTMutableLineStyle *plotStyle = [CPTMutableLineStyle lineStyle];
  lineStyle.lineColor = [CPTColor redColor];
  lineStyle.lineWidth = 2.0f;
  gridStyle.lineColor = [CPTColor redColor];
  gridStyle.lineWidth = 1.0f;
  plotStyle.lineColor = [CPTColor blackColor];
  plotStyle.lineWidth = 1.0;    
  
  // Create a text style that we will use for the axis labels.
  CPTMutableTextStyle *textStyle = [CPTMutableTextStyle textStyle];
  textStyle.fontName = @"Helvetica";
  textStyle.fontSize = 14;
  textStyle.color = [CPTColor blackColor];
  
  // Create the plot symbol we're going to use.
  CPTPlotSymbol *plotSymbol = [CPTPlotSymbol ellipsePlotSymbol];
  plotSymbol.lineStyle = plotStyle;
  plotSymbol.size = CGSizeMake(2.0, 2.0);
  // Setup some floats that represent the min/max values on our axis.
  float xAxisMin = 0;
  float xAxisMax = 10;
  float yAxisMin = 0;
  float yAxisMax = 100;
  
  
  
  
  // We modify the graph's plot space to setup the axis' min / max values.
  CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
  plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1329375688) length:CPTDecimalFromFloat(500)];
  plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromFloat(yAxisMax - yAxisMin)];
  
  // Modify the graph's axis with a label, line style, etc.
  CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet;
  axisSet.xAxis.visibleRange =[CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(yAxisMin) length:CPTDecimalFromDouble(yAxisMax)];
  axisSet.yAxis.visibleRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(yAxisMin) length:CPTDecimalFromDouble(yAxisMax)];
  
  
  axisSet.xAxis.title = @"Time(per sec)";
  axisSet.xAxis.titleTextStyle = textStyle;
  axisSet.xAxis.axisLineStyle = lineStyle;
  axisSet.xAxis.titleOffset = 30.0f;
  axisSet.xAxis.majorTickLineStyle = lineStyle;
  axisSet.xAxis.minorTickLineStyle = lineStyle;
  axisSet.xAxis.majorGridLineStyle = lineStyle;
  axisSet.xAxis.minorGridLineStyle=gridStyle;
  axisSet.xAxis.gridLinesRange = axisSet.xAxis.visibleRange;
  axisSet.xAxis.labelOffset = 6.0f;
  axisSet.xAxis.majorIntervalLength = CPTDecimalFromFloat(2.0f);
  axisSet.xAxis.minorTicksPerInterval = 5;
  axisSet.xAxis.minorTickLength = 10.0f;
  axisSet.xAxis.majorTickLength = 7.0f;
  axisSet.xAxis.labelTextStyle = textStyle;
  axisSet.xAxis.labelFormatter = formatter;
  
  
  
  axisSet.yAxis.title = @"Uterus Ccontraction";
  axisSet.yAxis.titleTextStyle = textStyle;
  axisSet.yAxis.titleOffset = 20.0f;
  axisSet.yAxis.axisLineStyle = lineStyle;
  axisSet.yAxis.majorTickLineStyle = lineStyle;
  axisSet.yAxis.minorTickLineStyle = lineStyle;
  axisSet.yAxis.labelTextStyle = textStyle;
  axisSet.yAxis.labelFormatter = formatter;
  axisSet.yAxis.majorGridLineStyle= lineStyle;
  axisSet.yAxis.minorGridLineStyle=gridStyle;
  axisSet.yAxis.gridLinesRange = axisSet.yAxis.visibleRange;
  
  
  axisSet.yAxis.labelOffset = 3.0f;
  axisSet.yAxis.majorIntervalLength = CPTDecimalFromFloat(10.0f);
  axisSet.yAxis.minorTicksPerInterval = 1;
  axisSet.yAxis.minorTickLength = 5.0f;
  axisSet.yAxis.majorTickLength = 7.0f;
  
  // Add a plot to our graph and axis. We give it an identifier so that we
  // could add multiple plots (data lines) to the same graph if necessary.
  CPTScatterPlot *plot = [[CPTScatterPlot alloc] init];
  plot.dataSource = self;
  plot.identifier = @"mainplot";
  plot.dataLineStyle = plotStyle;
  plot.plotSymbol = plotSymbol;
  //[self.graph reloadData];
  [self.graph setNeedsDisplay];
  [self.graph addPlot:plot];
  
  }
  
  
     //Delegate method that returns the number of points on the plot
   -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
     {
  if ( [plot.identifier isEqual:@"mainplot"] )
  {
      return [self.graphData count];
  }
  
  return 0;
     }
  
  
       -(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:    (NSUInteger)index 
     {
      if ( [plot.identifier isEqual:@"mainplot"] )
        {
      //NSValue *value = [self.graphData objectAtIndex:index];
      //CGPoint point = [value CGPointValue];
  
      if(self.scatterPlotView1){
      NSDictionary *entry = [self.graphData objectAtIndex:index];
      CGFloat x = [[entry objectForKey:@"X"] floatValue];
      CGFloat y = [[entry objectForKey:@"Y"] floatValue];
      CGPoint point = CGPointMake(x, y);
  
  
      // FieldEnum determines if we return an X or Y value.
      if ( fieldEnum == CPTScatterPlotFieldX )
      {
          return [NSNumber numberWithFloat:point.x];
      }
      else    // Y-Axis
      {
          return [NSNumber numberWithFloat:point.y];
      }
      } else  if(self.scatterPlotView2){
              NSDictionary *entry = [self.graphData objectAtIndex:index];
              CGFloat x = [[entry objectForKey:@"X"] floatValue];
              CGFloat z = [[entry objectForKey:@"Y"] floatValue];
              CGPoint point1 = CGPointMake(x, z);
  
  
              // FieldEnum determines if we return an X or Y value.
              if ( fieldEnum == CPTScatterPlotFieldX )
              {
                  return [NSNumber numberWithFloat:point1.x];
              }
              else    // Y-Axis
              {
                  return [NSNumber numberWithFloat:point1.y];
              }
  
  
      }
  }
  
  return [NSNumber numberWithFloat:0];
  }
  </code></pre>
  
  <p>When i set the xaxis plot range as mentioned above I end up getting a condensed graph. Is it because im taking the plot range as float ?</p>