如何在Matlab中得到透明背景的图片

如题所述

1、首先打开一个Matlab的曲线图,如下图依次点选 Edit---copy options选项。

2、点选transparent background(透明背景),设置完后点“ok”。force white background 表示强制白色背景。

3、如下图,重新点击Edit---copy figure选项。

4、打开excel,选中任意一个格子,右键---选择性粘贴。

5、然后出现了“选择性粘贴”的对话框)。方式:图片(增强型图元文件),点击“确定”。

6、粘贴后的图如下所示。很明显可以看到这个图是透明的背景,可以看到图后的excel表格。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-06
MATLAB输出的矢量图往往不是透明背景的,这样插在其他文件中就会很难看。关于在MATLAB中如何得到透明背景的矢量图,我有个经验就是:用MATLAB导出pdf图形(而不是eps图形),然后用Acrobat另存成eps图形,往往就是透明的了。不过,如果一个图形包含多个子图,那么很可能只有第一个子图的背景是透明的,其余子图背景仍为白色。

附:
by alexxl 2006-02-11

在网上发现如下codes,可以生成透明图形。

set(gcf,'color','none'); %图形背景设为无色
set(gca,'color','none'); %坐标轴背景设为无色,这条更重要,通常图形背景的白色实际为坐标轴背景色
打开一个.fig的文件,在command中运行上面三行命令 Edit->Copy
Figure->粘贴到要粘贴的地方,就得到背景透明的图片。
附使用Scope存入工作空间中的数据直接画图程序:

function myscope(ScopeData)
input=ScopeData;
a=size(input.signals);
b=a(1,2);%b为信号的个数
c=1;%c为循环变量
while c<=b;
subplot(b,1,c)
plot(input.time,input.signals(1,c).values,'LineWidth',2.0)
set(gca,'FontSize',12,'FontName','TimesNewRoman','FontWeight','bold','LineWidth',2.0,'color','none')
xlabel('Time(s)','FontSize',12,'FontName','TimesNewRoman','FontWeight','bold')
ylabel('x1,y1','FontSize',12,'FontName','TimesNewRoman','FontWeight','bold')
title('#####','FontSize',12,'FontName','TimesNewRoman','FontWeight','bold');
c=c+1;
grid on;
legend('Y1','Y2','Y3')
set(h,'color','white');
end本回答被网友采纳
第2个回答  2018-09-05
[I,map,alpha] = imread('透明及改变大小.png'); % 插入图片
h1 = axes('position', [0.4 0.6 0.2 0.2], 'parent', gcf); %[位置 位置 大小 大小]
h = imshow(I, 'parent', h1);
set(h,'AlphaData',alpha)

相似回答