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输出图片分辨率