я использую библиотеку coreplot 0.9 в своем приложении для iPad.
Здесь я использую график рассеяния с фиксированным диапазоном 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];
}
Эти снимки экрана показывают ситуацию (так как я новичок в переполнении стека, мне еще не разрешено публиковать картинки): 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