【发布时间】:2011-11-09 00:18:47
【问题描述】:
我在我的 iPad 应用程序中使用 coreplot library 0.9。
在这里,我使用具有固定 y 范围(在 y 方向上没有滚动)的散点图,即绘图空间范围 = 全局范围(参见下面的源代码)。
当新数据可用(MOC 观察)时,我将数据添加到绘图的数据数组(散点图),确定所需的新 y 范围(数据数组中的最小值/最大值)并重新加载整个绘图。
如果新数据的值大于其他值,则尽管绘图空间已适应新范围,但绘图会显示超出范围。
但是:
如果 MOC 更改不是由于插入新数据(比旧数据大)而是由于删除数据(在绘图数据数组中具有最大值),结果是完美的:绘图使用全范围 -->范围适应(减少绘图空间范围)发生。为什么这在另一个方向(增加绘图空间范围)也不起作用?
我真的被困在这里,如果有人可以帮助我,我会很高兴。谢谢。
-(void) mocChangeNotification:(NSNotification *)notification
{
...
[self performSelectorOnMainThread:@selector(refresh) withObject:nil waitUntilDone:NO];
}
- (void) setYAxisValueRange
{
...
myOwnPlotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(minDisplay)
length:CPTDecimalFromFloat(maxDisplay)];
// disable "scrolling" in y-direction
myOwnPlotSpace.globalYRange = myOwnPlotSpace.yRange;
}
- (void) refresh
{
[dataForPlot removeAllObjects];
[self preparePlotData]; // put data into plot's data array
[self setYAxisValueRange]; // looks for min / max values in data
[myPlot reloadData];
}
这些截图显示了情况(由于我是 Stack Overflow 的新手,我还不能发布图片):http://gallery.me.com/timoseeberger#100038&view=grid&bgcolor=black&sel=5
1) 初始显示情节(一切正常):
文件:screenshot_graph_initial
2) 我在绘图中添加新值 (200) --> 显示超出范围(上端)
文件:screenshot_graph_adding200
3) 我从绘图中删除值 200 和 150 --> 绘图显示完美适应
文件:screenshot_graph_deleting150
4) 我在绘图中添加新值 (40) --> 显示越界(下端)
文件:screenshot_graph_adding40
【问题讨论】: