2012-03-07 141 views
3

我想要拿出一个散点图,其范围取决于收到的价值。给定的变量self.xAxisMinimum取得接收到的数据的第一个值。但是,当我运行我的程序时,它会读取这样的数据,当self.xAxisMinimum = 4688时,plotpace.range从5000开始。 下面给出的是plot space设置。Coreplot剧情空间范围 - iOS

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace; 
plotSpace.xRange = [CPTPlotRange  

plotRangeWithLocation:CPTDecimalFromFloat(self.xAxisMinimum - 100) length:CPTDecimalFromFloat(60*60)]; 

plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yAxisMin) length:CPTDecimalFromFloat(yAxisMax - yAxisMin)]; 

它与主要间隔长度有关吗?我的主要区间长度为180秒。 下面给出的是Xaxis集参数的代码。

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.labelOffset = 6.0f; 
axisSet.xAxis.majorIntervalLength = CPTDecimalFromFloat(180.0f); 
axisSet.xAxis.minorTicksPerInterval = 5; 
axisSet.xAxis.minorTickLength = 0.50f; 
axisSet.xAxis.majorTickLength = 0.50f; 
axisSet.xAxis.labelTextStyle = textStyle; 
axisSet.xAxis.labelFormatter = formatter; 

因此,对于这个成立了,我应该有距离(4688-100)开始x轴,而不是5000。任何人有任何想法,为什么?多谢提前

+0

什么是您的格式化程序设置?它是否将一个有效数字的价值四舍五入?你是否检查过实际的'xRange'来查看它是否被正确设置? – 2012-03-15 01:33:10

+1

埃里克你好,问题在于DecimalFromFloat。我给了float值的整数输入并转换成了十进制。相反,我改为DecimalFromInteger。它工作正常。谢谢 – DesperateLearner 2012-03-16 14:21:21

+1

@DesperateLearner:非常感谢您张贴您的上述评论:在我的情况下,由于在'double'上调用'CPTDecimalFromFloat',我遇到了同样的问题。您的评论指出我在哪里解决问题。 PS:如果你自己解决问题,鼓励你回答你自己的问题 - 如果你发表你的评论作为答案,我会很乐意给你一个赞成... :) – Mac 2012-05-25 01:11:00

回答

2

问题在于DecimalFromFloat。我给了float值的整数输入并转换成了十进制。相反,我改为DecimalFromInteger。它工作正常。谢谢