第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)