From: Brian on
Hello All,

Is there an efficient way to plot many large data sets at a time? The software we are developing has to, among many other things, analyze data from hundreds of specific events observed under a microscope and compile a plot for each event consisting of two line graphs. I've been using plotyy to plot the data, which is easy enough. Only the data from one event is plotted at a time, allowing the user to select which specific event's data to exam. The scale on each axis (the X axis and both Y axes) varies for each event's plot. Whenever the user selects a new event to view its summary data, MATLAB has to create and render the plot all over again, which for hundreds of events seems to be slow and inefficient, considering that some of the plots are fairly complex.

My question is, is there a way to "preplot" the data, so to speak? That is, how could I render all of the plots at once before displaying them, and then simply loading the plots from memory and displaying them to make switching between event summaries much quicker? I tried using getframe and making a movie to store the image of each plot and then displaying the individual frame corresponding to the desired plot, but the image quality was too poor, and I could not find a way to accurately scale the X and two Y axes, which as I said vary from plot to plot. Does anyone know if there is a way to do this?

Thanks,
Brian
From: Walter Roberson on
Brian wrote:

> My question is, is there a way to "preplot" the data, so to speak? That
> is, how could I render all of the plots at once before displaying them,
> and then simply loading the plots from memory and displaying them to
> make switching between event summaries much quicker? I tried using
> getframe and making a movie to store the image of each plot and then
> displaying the individual frame corresponding to the desired plot, but
> the image quality was too poor, and I could not find a way to accurately
> scale the X and two Y axes, which as I said vary from plot to plot. Does
> anyone know if there is a way to do this?

What if you set the figure (or uipanel or axes) visibility to off while
you created the plot, and then set it visible only when you wanted to
actually display the plot?
From: TideMan on
On Aug 2, 3:08 pm, "Brian " <btmcnel...(a)yahoo.com> wrote:
> Hello All,
>
> Is there an efficient way to plot many large data sets at a time? The software we are developing has to, among many other things, analyze data from hundreds of specific events observed under a microscope and compile a plot for each event consisting of two line graphs. I've been using plotyy to plot the data, which is easy enough. Only the data from one event is plotted at a time, allowing the user to select which specific event's data to exam. The scale on each axis (the X axis and both Y axes) varies for each event's plot. Whenever the user selects a new event  to view its summary data, MATLAB has to create and render the plot all over again, which for hundreds of events seems to be slow and inefficient, considering that some of the plots are fairly complex.
>
> My question is, is there a way to "preplot" the data, so to speak? That is, how could I render all of the plots at once before displaying them, and then simply loading the plots from memory and displaying them to make switching between event summaries much quicker? I tried using getframe and making a movie to store the image of each plot and then displaying the individual frame corresponding to the desired plot, but the image quality was too poor, and I could not find a way to accurately scale the X and two Y axes, which as I said vary from plot to plot. Does anyone know if there is a way to do this?
>
> Thanks,
> Brian

Print them to .png or .jpg files.
Then you have complete freedom of how you view them.
For example, you could use a web browser - it's much easier to make a
GUI using html code than Matlab's GUIDE.
Alternatively, you could use an image viewing program like ThumbsPlus.

From: Brian on
TideMan <mulgor(a)gmail.com> wrote in message <ee5f13fd-3538-4f12-a60b-1c36206aca11(a)p22g2000pre.googlegroups.com>...
> On Aug 2, 3:08 pm, "Brian " <btmcnel...(a)yahoo.com> wrote:
> > Hello All,
> >
> > Is there an efficient way to plot many large data sets at a time? The software we are developing has to, among many other things, analyze data from hundreds of specific events observed under a microscope and compile a plot for each event consisting of two line graphs. I've been using plotyy to plot the data, which is easy enough. Only the data from one event is plotted at a time, allowing the user to select which specific event's data to exam. The scale on each axis (the X axis and both Y axes) varies for each event's plot. Whenever the user selects a new event  to view its summary data, MATLAB has to create and render the plot all over again, which for hundreds of events seems to be slow and inefficient, considering that some of the plots are fairly complex.
> >
> > My question is, is there a way to "preplot" the data, so to speak? That is, how could I render all of the plots at once before displaying them, and then simply loading the plots from memory and displaying them to make switching between event summaries much quicker? I tried using getframe and making a movie to store the image of each plot and then displaying the individual frame corresponding to the desired plot, but the image quality was too poor, and I could not find a way to accurately scale the X and two Y axes, which as I said vary from plot to plot. Does anyone know if there is a way to do this?
> >
> > Thanks,
> > Brian
>
> Print them to .png or .jpg files.
> Then you have complete freedom of how you view them.
> For example, you could use a web browser - it's much easier to make a
> GUI using html code than Matlab's GUIDE.
> Alternatively, you could use an image viewing program like ThumbsPlus.

Thanks for the help, guys! I used hgsave to save each individual plot and then just show the image as opposed to redoing the plot every time. Much faster now!

Brian