Why is subplot much faster than figure?

后端 未结 2 802
心在旅途
心在旅途 2021-01-15 21:36

I\'m building a data analysis platform in MATLAB. One of the system\'s features need to create many plots. At any given time only one plot is available and the user can trav

相关标签:
2条回答
  • 2021-01-15 22:03

    The call of subplot does nothing else than creating a new axes object with some convenient positioning options wrapped around.

    Axes objects are always children of figure objects, so if there is no figure window open, subplot will open one. This action takes a little time. So instead of opening a new figure window for every new plot, it's faster to just create a new axes object by using subplot, as you determined correctly. To save some memory you can clear the previous plot by clf as suggested by Daniel.

    As I understood, you don't want to Create axes in tiled positions, rather you just want to create one axes object. So it would be even faster to use the axes command directly. subplot is actually overkill.

    If all your plots have the same axes limits and labels, even clf is not necessary. Use cla (clear axes) to delete the previous plot, but keep labels, limits and grid.

    Example:

    %// plot #1
    plot( x1, y2 );
    xlim( [0,100] ); ylim( [0,100] );
    xlabel( 'x' );
    ylabel( 'y' );
    
    %// clear plot #1, keep all settings of axes
    
    %// plot #2
    plot( x2, y2 );
    
    ...
    
    0 讨论(0)
  • 2021-01-15 22:09

    Use figure once to create a figure and clf to clear it's content before repainting.

    0 讨论(0)
提交回复
热议问题