Масштабируемое, перетаскиваемое поле на графиках, которое может выбирать данные

Вот настройка:

У меня есть графический график данных, и я пытаюсь выяснить, возможно ли попытаться поместить прямоугольник на фигуру, которую можно перемещать и изменять по ширине, и возвращать некоторые значения, такие как процент и площадь под кривой. Это выглядит примерно так:

Пример

Любые предложения о том, с чего начать? Я чувствовал, что это может быть выполнимо с использованием более графического интерфейса вместо стандартного сюжета.


person Brian    schedule 12.06.2012    source источник


Ответы (1)


Я бы начал с imrect. Его можно перетаскивать, и вы можете добавлять к нему обратные вызовы.

(Взято непосредственно из справки MATLAB)

figure, imshow('cameraman.tif');
h = imrect(gca, [10 10 100 100]);
addNewPositionCallback(h, @(p) title(mat2str(p, 3)));
fcn = makeConstrainToRectFcn('imrect', get(gca,'XLim'), get(gca, 'YLim'));
setPositionConstraintFcn(h, fcn);

Измените addNewPositionCallback на то, что соответствует вашим потребностям. В частности, получите необходимые пиксели из изображения (используя положение) и рассчитайте все, что хотите.

person Andrey Rubshtein    schedule 12.06.2012
comment
Я почти уверен, что это именно то, что мне нужно. Спасибо! - person Brian; 12.06.2012