Scaleable, draggable box on plots that can select data

matlab, matlab-figure, matlab-guide, user-interface

Solution

I would start with `imrect`. It is draggable, and you can add callbacks to it.

(Taken directly from MATLAB help)

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);

Change the `addNewPositionCallback` to something that suits your needs. Specifically, get the needed pixels from the image (by using the position), and calculate whatever you like.

Problem

Here's the setup: I've got a graphical plot of data, and I'm trying to find if it's feasible to try to put a box on the figure that can be moved and changed in width and return some values like percentage of and area under the curve. It looks something like this: Any suggestions on where to start? My feeling was that it might be doable using a more GUI'd interface versus a standard plot.

Original source