我有y轴,总测试数为
和x轴表示时间
以下是我用来绘制的代码:
- (NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot {
NSUInteger recordplot;
if (plot.identifier == @"Plot Error")
{
recordplot = [HourErroroArray count];
recordplot--;
}
return recordplot;
}
- (NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index {
NSDecimalNumber *num = nil;
int eTemp1;
int eHour1;
int eMin1;
int eSec1;
// Number of the X axis asked
if (fieldEnum == CPScatterPlotFieldX)
{
if (plot.identifier == @"Plot Error")
{
eHour1=[[HourErroroArray objectAtIndex:index]intValue ];
eMin1=[[MinErrorArray objectAtIndex:index]intValue ];
eSec1=[[SecErrorArray objectAtIndex:index]intValue ];
eTemp1=eHour1*eMin1*eSec1;
num = (NSDecimalNumber *)[NSDecimalNumber numberWithInt:eTemp1];
}
}
// Number of the Y axis asked
else if (fieldEnum == CPScatterPlotFieldY)
{
if (plot.identifier == @"Plot Error")
{
num = (NSDecimalNumber *)[NSNumber numberWithInteger:index];
}
}
return num;
}
我可以看到图表是绘图但只是在一条直线上,即与xaxis平行
! - > y轴,_ - > x轴和。 - >行正在绘制值
y-axis ! ! ! ........... ! ______________ x-axis
但我想要以下内容:
http://www.buggyprogrammer.co.uk/2010/10/03/using-core-plot-to-draw-line-graphs/
也许不是上下线,但至少在一定程度上。
答案 0 :(得分:0)
您可能已切换x和y值。你的意思是y值是索引而x值是计算值吗?
否则,在-numberForPlot:field:recordIndex:
中插入一些NSLog语句,并确保数字(eTemp1,eHour1,eMin1,eSec1)符合您的预期。
[在回复评论时添加]
检查绘图空间上的绘图范围,以确保它们对您的数据合理。如果y范围的长度太大,它将压缩绘图,使其看起来像一条水平线。绘图范围的常见错误是在创建范围时将最终值的长度误认为是错误。 CPTPlotRange的工作方式与NSRange相同。作为实验,请尝试使用绘图空间方法-scaleToFitPlots:
让数据填充绘图范围。有关示例,请参阅Mac CPTTestApp。