Suppressing Live Script plotting figure inline
조회 수: 23 (최근 30일)
이전 댓글 표시
I am plotting a figure from a Live Script using the
set(gcf, 'Visible', 'on');
option to make it appear in a separate, external window.
However, a copy of the figure still appears inline the Live Script which I would like to avoid. The figure should only appear externally (i.e. in a separate window, which it already does), and not get created inline too.
I have tried the following, none of which worked:
- Plotting the figure inside a separate .m function (being called from the Live Script)
- Creating the figure with visibility 'off'
- Forcing 'normal' window style when creating the figure, i.e. f = figure('WindowStyle','normal')
- Creating and plotting into a uifigure (copy still shows up inline)
- Saving the figure with its visibility turned 'off' and opening it again in a different instance of another Live Script. Upon opening, both the external and the inline figures are created.
EDIT: Example Live Script attached for reference.
댓글 수: 2
채택된 답변
추가 답변 (1개)
Matt J
2025년 9월 5일
편집: Matt J
2025년 9월 5일
I don't think it's possible. However, you could shrink down the side bar area of the livescript where the figures are displayed, so that they aren't so visible,

댓글 수: 4
Umar
2025년 9월 6일
편집: Umar
2025년 9월 6일
Hi @Mate,
You mentioned:
"Would you be able to provide a short example of the 'wrap plotting in a function without returning any outputs'? I tried something resembling this, yet the inline figure was still created. Perhaps I missed something then."
Wrapping plotting in a function without returning outputs reduces workspace clutter but does not prevent the Live Script from capturing the figure inline—this is by design.
Minimal example:
function externalPlot(x,y) if nargin==1, y=x; x=1:numel(y); end h = findobj('Type','figure','Name','External Figure'); if isempty(h) || ~isvalid(h) h = figure('Name','External Figure','NumberTitle','off','WindowStyle','normal','Visible','on'); else figure(h); clf(h); end plot(h,x,y,'.-'); grid(h,'on'); xlabel('X [s]'); ylabel('Y [y]'); title('Random plot'); end
Call from the Live Script:
externalPlot(1:10, rand(1,10));
Caveat: inline figures will still appear.
참고 항목
카테고리
Help Center 및 File Exchange에서 Function Creation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!