Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';我的x轴秀在iPhone上有核心图吗?_Iphone_Objective C_Cocoa Touch_Core Plot - Fatal编程技术网

为什么赢了';我的x轴秀在iPhone上有核心图吗?

为什么赢了';我的x轴秀在iPhone上有核心图吗?,iphone,objective-c,cocoa-touch,core-plot,Iphone,Objective C,Cocoa Touch,Core Plot,编辑:我想我的问题的措辞更恰当:我怎么能有一个不从零开始的Y轴?看起来x轴总是放在y=0,但我希望x轴在y轴上的某个正数处。 这是一个包含更规则数据的图表。。。我只希望x轴位于绘图的最小y值(约77),而不是0。 下面是我用来创建图形的函数 这是一大堆代码,我不太确定哪一部分可能不显示x轴 x轴不显示可能与我的数据有关吗 - (void) showGraph:(SavedDetailScreen*)dataSource { // create the graph and add it t

编辑:我想我的问题的措辞更恰当:我怎么能有一个不从零开始的Y轴?看起来x轴总是放在y=0,但我希望x轴在y轴上的某个正数处。

这是一个包含更规则数据的图表。。。我只希望x轴位于绘图的最小y值(约77),而不是0。

下面是我用来创建图形的函数

这是一大堆代码,我不太确定哪一部分可能不显示x轴

x轴不显示可能与我的数据有关吗

- (void) showGraph:(SavedDetailScreen*)dataSource {

  // create the graph and add it to the view
  CPXYGraph *graph = [[CPXYGraph alloc] initWithFrame: CGRectZero];
  graph.plotArea.masksToBorder = NO;
  CPLayerHostingView *graphView = [[CPLayerHostingView alloc] initWithFrame:CGRectMake(0,0, 280, 240)];
  [self addSubview:graphView];
  graphView.hostedLayer = graph;
  graph.paddingLeft = 50.0;
  graph.paddingTop = 20.0;
  graph.paddingRight = 10.0;
  graph.paddingBottom = 40.0;              

  // set up the ranges for the graph axis
  float minElevation = dataSource.track.tbStats.minAlt;
  float maxElevation = dataSource.track.tbStats.maxAlt-dataSource.track.tbStats.minAlt;
  float minDistance = 0.0f;
  float maxDistance = dataSource.track.tbStats.totalDistance;
  CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
  plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minDistance)
                                             length:CPDecimalFromFloat(maxDistance)];
  plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minElevation)
                                                 length:CPDecimalFromFloat(maxElevation)];

  // style the graph with white text and lines
  CPTextStyle *whiteText = [CPTextStyle textStyle];
  whiteText.color = [CPColor whiteColor];              
  CPLineStyle *whiteStyle = [CPLineStyle lineStyle];
  whiteStyle.lineColor = [CPColor whiteColor];
  whiteStyle.lineWidth = 2.0f;

  // set up the axis
  CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;      
  CPXYAxis *x = axisSet.xAxis;
  CPXYAxis *y = axisSet.yAxis;              
  x.majorIntervalLength = CPDecimalFromFloat(maxDistance/10.0f);
  x.minorTicksPerInterval = 0;
  x.majorTickLineStyle = whiteStyle;
  x.minorTickLineStyle = whiteStyle;
  x.axisLineStyle = whiteStyle;
  x.minorTickLength = 5.0f;
  x.majorTickLength = 10.0f;
  x.labelOffset = 3.0f;
  x.labelTextStyle = whiteText;
  y.majorIntervalLength = CPDecimalFromFloat(maxElevation/5.0f);
  y.minorTicksPerInterval = 0;
  y.majorTickLineStyle = whiteStyle;
  y.minorTickLineStyle = whiteStyle;
  y.axisLineStyle = whiteStyle;
  y.minorTickLength = 5.0f;
  y.majorTickLength = 10.0f;
  y.labelOffset = 3.0f;
  y.labelTextStyle = whiteText;

  CPScatterPlot *plot = [[[CPScatterPlot alloc] initWithFrame:graph.bounds] autorelease];
  plot.dataLineStyle.lineWidth = 2.0f;
  plot.dataLineStyle.lineColor = [CPColor blueColor];
  plot.dataSource = dataSource;
  [graph addPlot:plot];
  CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol];
  greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
  greenCirclePlotSymbol.size = CGSizeMake(2.0, 2.0);
  plot.plotSymbol = greenCirclePlotSymbol;                 

}

这个框架确实需要更好的方式来配置自己。我看跳出来没什么问题。也许只是尝试简化方法,使调试变得易于管理。检查您正在传递的数据,以确保它是您期望的数据。更好的是,创建一些虚拟数据,您知道这些数据将生成您期望的绘图

可以使用轴的ConstantCoordination属性设置轴在正交轴上的位置。只需将x轴上的属性设置为y的正值,轴就会向上移动。

我昨天/今天遇到了同样的问题,解决方案似乎是使用轴上的正交坐标CIMAL属性。例如:

graph.axisSet.xAxis.orthogonalCoordinateDecimal = CPDecimalFromFloat(minHeight);

这表明isFloatingAxis属性已从至少0.9版中删除

我在讨论组中也发现了这一点

经过一番打猎后,新的轴浮动方式如下所示:

x.axisConstraints = [CPTConstraints constraintWithUpperOffset:132];

数据都很好。图表显示,y轴显示,y轴标签显示,绘图显示。。。只是x轴不显示,也不显示其标签。数据的唯一问题是y值有时可能低于最小y值。这会把事情搞砸吗?对不起,我不太熟悉这个框架。但是,您使用的这个方法是什么:plotRangeWithLocation:cpdecimalfloat(minDistance)length:cpdecimalfloat(maxDistance)];这是长度的正确值吗?例如,对于alt,maxAlt是数据源最小值和最大值之间的差值,但对于距离,maxAlt是0和数据源最大值之间的差值。此外,作为一般观察,看起来整个图形可能都在那里,但x轴由于一些较低的y值而被切断。你能不能创建一个更简单的虚拟数据集(可能所有y都相同以产生一条水平线),看看x轴是否出现?它似乎就是数据。当我使用的轨迹中没有任何高度为0的点时,我可以看到轴。我认为我的问题更适合这样表述:我怎么能有一个不从零开始的Y轴?看起来x轴总是被放置在y=0,但是我希望x轴在y轴上是正数。