Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scaleable, draggable box on plots that can select data

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:

Example

Any suggestions on where to start? My feeling was that it might be doable using a more GUI'd interface versus a standard plot.

like image 648
Brian Avatar asked Jun 12 '12 14:06

Brian


1 Answers

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.

like image 142
Andrey Rubshtein Avatar answered Sep 20 '22 05:09

Andrey Rubshtein