export_fig Transparency

64 次查看(过去 30 天)
Matthew Schmidt
Matthew Schmidt 2021-3-1
I am attempting to save a bunch of figures as .png (or any type of image file) files with a transparent figure background BUT a non transparent axis background. I am not able to do this with just matlab commands as I have tried (see code below)
fig = figure;
plot(rand(5))
title('testttttt');xlabel('whattt');ylabel('whyyyy')
set(fig, 'color', 'none')
saveas(fig, 'test.png')
This produces a figure with a transparent background, but when saved does not save that transparency.
This lead me to find export_fig. According to what I read on the readme and the github I assumed that it would only change the figure, NOT the axis color. The snip below is from https://github.com/altmany/export_fig/blob/master/README.md
When I go to save the figure using the following commands the axis and figure are BOTH transparent.
fig = figure;
plot(rand(5))
title('testttttt');xlabel('whattt');ylabel('whyyyy')
export_fig test.png -transparent
How do I just get the figure NOT axis to be transparent. I do know about the "Copy Figure" manual method but I am creating hundreds of figures and reallllly want a non-manual method for this implementation.
The below snip shows what I want on the left (manual Copy Figure method) versus the right, which is what export_fig creates. I have it on a sample powerpoint background.
Thanks for any help.

回答(1 个)

Oliver Woodford
Oliver Woodford 2021-10-24
编辑:Oliver Woodford 2021-10-24
The answer is in the help text you shared (you just want the axes color to be white, not none):
fig = figure;
plot(rand(5))
title('testttttt');xlabel('whattt');ylabel('whyyyy')
set(gca(), 'color', 'w');
export_fig test.png -transparent

类别

Help CenterFile Exchange 中查找有关 Printing and Saving 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by