MATLAB GUI设计——绘图
讨论两个问题,将MATLAB绘图保存为适合于论文使用的格式,绘图的一些技巧。也许我们都这样的做过,MATLAB所绘制的图形要保存为图片,一般是使用截图的方式,或者使用FILE下的另存为BMP格式等等,这样的做法有一些缺点,截图的方式显得很不专业,另存为方式有时候图片不完整。本文将讨论使用命令来解决这样的问题。
-
使用getframe和imwrite函数
getframe获取当前左边或者界面窗口的快照,返回图片帧。
imwrite将图像保存到指定的文件中。
print将数据保存至指定格式的文件中。
x = -4*pi:0.02:4*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, 'r', x, y2, 'b');
F = getframe(gcf);
imwrite(F.cdata, 'mypict.bmp');
hfig = gcf;
print(hfig, '-dbmp', 'mypict2');
效果
-
一个fig下有两个坐标轴,需要保存单独保存图片。
思路是使用坐标轴的句柄,将要保存的图片复制到一个新的figure中,然后在保存。
h1 = subplot(1, 2, 1);
plot(x, y1, 'r');
h2 = subplot(1, 2, 2);
plot(x, y2, 'b');
newFigure =figure;
set(newFigure, 'Visible', 'off')
newAxis = copyobj(h1, newFigure);
set(newAxis, 'Units', 'default', 'Position', 'default');
saveas(newFigure, 'skill', 'jpg')
close(newFigure)
效果:
-
图例的添加和控制
主要使用图形的句柄来实现的。
h1 = plot(x, y1, 'r-','marker','*');
hold on
h2 = plot(x, y2, 'b-', 'marker', 'o');
hold off
h = [h1; h2];
M = {'sin'; 'cos'};
legend(h, M, 'Location', 'northwest')
-
总结
要绘制出我们想要的图形也不是一件难事,关键是要掌握MATLAB中图像的句柄使用方法和MATLAB GUI的句柄的相关知识。使用句柄就可以对对象进行各种各样的设计。