matlab画图plot以及自动保存图像

plot 

(1)plot(x),x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线。
(2)plot(x,y),x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线。
(3)plot(x1,y1,x2,y2,...),绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

常用语句见示例:

% figure('color','w')             % 设置图片背景色为白色
% figure('Name','测试数据图')      % 第一张图就会显示figure1 测试数据图。
figure                            % 常见代码直接用figure是最常见的命令

plot(aa(t1,1),'-ro') % 绘图时plot命令中末尾'-.r*'、'--mo'、':bs' 可改变线条和点的样式,如:m代表颜色后面的o代表点的样式
set(gca,'XTick',[0:10:320]);    %设定x坐标范围和间距
set(gca,'YTick',[95:1:101]);   %设定y坐标范围和间距

% set(gca,'XLim',[0 315]);     % 设定x坐标的范围。注意set语句要放在plot后面才起作用
% set(gca,'XTick',[0,50,315]);     % 设定x坐标的刻度范围。(注意和上面不同,上面不加逗号)
% axis([xmin xmax ymin ymax]); % axis设置坐标轴在指定的区间,注意这个必须同时设定xy
% xlim([xmin xmax])              % 只设置x坐标范围
% ylim([ymin ymax])              % 只设置y坐标范围

% legend('A')                  % 添加图例              
ylabel('均值'); xlabel('样本数');     % 添加x,y标签
% ylabel('values of sin(t) and e^{-x}') % 添加y轴信息 e^{-x}是显示指数的方法
title(['第',num2str(t),'列信号']);    % 添加图片title

%% 多行title
% firstline = '测试集的实际分类和预测分类图'; 
% secondline= ['Accuracy=',num2str(accuracy)];
% title({firstline;secondline},'Fontsize',12);
% title('{\s}^{-1}');

 只想显示图像的一部分:

plot(data(:,1)) ; 
xlim ([5100 10000]); % 设置要显示的x轴范围

1) 关于plot线条和颜色,可参见:

(1条消息) matlab画图(plot)命令。长期更新!_xiaotao_1的博客-CSDN博客_matlab画图plot

           b    blue   蓝      .     point              -     solid
           g    green  绿      o     circle             :     dotted
           r    red    红      x     x-mark             -.    dashdot 
           c    cyan   青      +     plus               --    dashed   
           m    magenta 品红   *     star             (none)  no line
           y    yellow 黄      s     square
           k    black  黑      d     diamond
           w    white  白      v     triangle (down)
                               ^     triangle (up)
                               <     triangle (left)
                               >     triangle (right)
                               p     pentagram 五角星
                               h     hexagram  六角星

其他Matlab中较美观的颜色(RGB三元组):

%% 适用于Matlab的RGB颜色
[0.00,0.45,0.74] //蓝
[0.85,0.33,0.10] //橙红
[0.93,0.69,0.13] //橙黄
[0.72,0.27,1]    //淡紫
[0.47,0.67,0.19] //淡绿

注意Rgb颜色中255对应的是1,所以MATLAB中对应显现颜色要把每个颜色除以255

分享一下好看的配色

(14条消息) 高质量论文配图配色(附RGB值及16进制码)_slandarer的博客-CSDN博客_论文配色rgb

 举例:

%% 对点
scatter(x,y,'Marker','o','LineWidth',1,...
    'MarkerEdgeColor','black','MarkerFaceColor',[0.93,0.69,0.13]);
% 'Marker' 点的形状
% 'LineWidth' 点的边线粗细
% 'MarkerEdgeColor' 点的边线颜色
% 'MarkerFaceColor' 点的填充色
%% 对线
plot(x,y,'LineWidth',1.5,'Color',[0.85,0.33,0.10]);
% 'LineWidth' 线粗细
% 'Color' 线的颜色

2) legend:

legend(string1,string2,string3, …)     %分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。

legend('A','B')               % 如果添加多个标签,就依次往后排 
legend('A','B','NorthEastOutside');    %强行将注释视窗放在图形视窗的外右边。

3) set 设置图形对象属性

set(H,NameArray,ValueArray) 使用元胞数组 NameArray 和 ValueArray 指定多个属性值。要为 m 个图形对象中的每个图形对象设置 n 个属性值,请将 ValueArray 指定为 m×n 的元胞数组,其中 m = length(H),而 n 等于 NameArray 中包含的属性名的数量。

功能包括:

设置当前图像字体大小和格式、图像线宽和尺寸比例、图片的大小

设置当前图像网格线线条类型、宽度,网格线可以设定为虚线会比较好看

set(gcf, 'DefaultAxesLineWidth',1); 
set(gcf,'unit','centimeters','position',[3 5 7 5]); 


set(gca, 'FontSize', 16);   %set调用将图像字体设置为16
set(gca,'FontName','Monospaced','FontSize',16,'LineWidth',1.5); %设置字体格式和线宽
set(gca,'FontName','SimSun','FontSize',16,'LineWidth',1.5);     % 宋体

set(gca,’xtick’,[]) %去掉x轴的刻度 
set(gca,’ytick’,[]) %去掉y轴的刻度  
set(gca,’xtick’,[],’ytick’,[]) %同时去掉x轴和y轴的刻度 

调节图片大小:

set (gca,'position',[0.1,0.1,0.8,0.8] ) % 其中,输入数值,分别是左边距,下边距,横向宽度,纵向高度。

绘制网格线:

set(gca,’XGrid’,’on’);                  %绘制X轴垂直网格线
set(gca,‘gridlinestyle’,’:’,'GridColor','k',‘linewidth’,3)%设置网格线线条类型、颜色和宽度
set(gca,‘box’,‘on’)将图轴方框绘制出来

set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','baseline');
set(findobj('FontSize',12),'FontSize',figure_FontSize);

gca返回的是当前图片的坐标句柄。
第一句get(gca,'XLable')获取当前坐标的X标签,然后使用set去设置这个标签的字体大小等参数。
同理第二句是获取Y标签,然后设置字体和位置信息。
第三句:findObj可以获取字体大小是12的对象的句柄,然后将所有的字体更改为自己设置的(figure_FontSize)大小。

 4)画直线

plot([x1,x2],[y1,y2])
其中(x1,y1)是起点,(x2,y2)是终点。

5) 其他

hold on 图像重叠显示

grid on  放在绘图函数末尾,显示网格,grid off 关闭网格

例:

>> [X,Y,Z] = peaks;
   surf(X,Y,Z)
   grid off
   grid on

6) 举例:

(摘自主页y = mapminmax(‘apply‘,x,ps)与mapminmax(‘reverse‘,y,ps)中引用的bp神经网络的例子的部分代码)

figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')   % T_test和T_sim 用不同线条显示在同一图中
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
title(string)

结果:

可以参考: 

MATLAB二维绘图(二)向图中添加标题,坐标轴,图标和文字信息_黄其才_的博客-CSDN博客

plot和stem区别:

plot是连续函数,而stem画出来是离散函数,杆图。

line 画辅助线 

line()函数可以在画布中画一些辅助线。
line([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标])

line([1,2],[3,4])将画出(1,3)到(2,4)的一条直线,而不是(1,2)到(3,4)。

举例:

subplot(131)
line([1,2],[3,4]);
subplot(132)
line([1,1],[3,5],'color','k','linestyle','--');
subplot(133)
line([3,5],[2,2],'linestyle','-','color','r');

 ​​​​​

图像保存 

1) saveas 清晰度低

saveas(gcf, 'save.jpg'); %保存当前窗口的图像,格式为jpg,命名为save.jpg

2) print 

print(figure_handle,fileformat,filename)

figure_handle:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄

fileformat:单引号字符串,指定存储格式:

png格式: '-dpng';  jpeg格式:  '-djpeg';  tiff格式:  '-dtiff'; bmp格式:  '-dbitmap'; gif格式:'-dgif'; emf无损格式:'-dmeta'

filename:文件名

img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './img.png')         %即可得到对应格式和期望dpi的图像

%第一个参数为fig的句柄,第二个-r后加对应的分辨率dpi,第二个为-d加对应的图像格式
%最后加上文件路径及名称字符串。

3)  imwrite

img = getimage(gcf);                                 %获取当前坐标系图像
imwrite(img,'img.tiff', 'tiff', 'Resolution', 600)   %只有tiff可以使用Resolution参数, png可以使用X/YResolution, 参考help imwrite

参考链接:

set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); – MATLAB中文论坛 (ilovematlab.cn)

(1条消息) Matlab导出高DPI图像——生成高分辨率.eps .tiff .jpg图像的方法_Vertira的博客-CSDN博客_matlab输出图片分辨率

(1条消息) [Matlab]绘图颜色_iTsing203的博客-CSDN博客_matlab画图颜色

(1条消息) matlab中的画线函数line()_逸凌Time的博客-CSDN博客_matlab画直线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值