1 matlab绘图命令
常用的命令,下面介绍了各个命令对右图产生的效果。
title 图题xlabel ylabel 轴标签xlim ylim x/y轴范围XTickLabel 修改范围XTick 轴刻度legend 图例hold gca 获取句柄LineStyle 线型LineWidth 线宽Color 线颜色gca 坐标区句柄gcf 图窗句柄Marker 标记符号markersize 标记大小markerfacecolor 填充颜色markerEdgecolor 边界颜色subplot 分图yyaxis left 左y轴yyaxis right 右y轴annotation 注释text 文本
图1 原图
常用颜色:r-红;g-绿;b-蓝;c-蓝绿;m-紫红;y-黄;k-黑;w-白
RGB形式的表达:
plot(xm4,'color',[0 0.5 0.5]); % 数字范围为[0 1]
常用线型:-实线; --虚线; -.点划线; :点线
常用标志:.-点;。-圈;x-标记;*-星号;
2 matlab绘制单图一条曲线
2.1 修改要求
(1)在原图的基础上,改变坐标轴、图题、图例等字体样式和大小。
(2)针对一个图,多条曲线有不同的y轴标签。
(3)曲线太多,不能以颜色和线型区分时,可以采用标志区分(标志大小/填充颜色/边缘颜色)
博客中采用的xm4为1维的矩阵,采用下面的命令,则图可变为:
figure(2)
% plot(xm4,'color',[0 0.5 0.5]);
yyaxis left %%左y轴
plot(xm4,'Color','g','LineStyle','--','LineWidth',2,'Marker',...
'o','markersize',5,'markerfacecolor','b','markerEdgecolor','r'); %跟下面代码一样
% plot(xm4,'g--o','LineWidth',2,'markersize',5,'markerfacecolor','b','markerEdgecolor','r'); %将填充标志内部颜色填充为黑色 边界颜色为红色
title(['\fontname{宋体}适应度函数曲线'],'FontSize',12);
xlabel(['\fontname{宋体}时间\fontname{Times new roman}(t/s)'],'FontSize',12);
ylabel(['\fontname{宋体}大小\fontname{Times new roman}(N·m)'],'FontSize',12);
legend(['\fontname{Times new roman}GA\fontname{宋体}期望位置'],'FontSize',12,'Location','best');
yyaxis right %%右y轴
ylabel(['\fontname{宋体}外力\fontname{Times new roman}(N)'],'FontSize',12);
text(1,0.7,'曲线','FontSize',12);
% legend(['\fontname{宋体}期望位置'],['\fontname{宋体}实际位置'],['\fontname{宋体}位置差值'],'FontSize',9);
图2 曲线图
2.2 对曲线图进行保存和改进
为便于后期对曲线图进行修改,将图保存为 .fig 格式
一条曲线的图,可以直接对图进行修改。
set(gca,'linewidth',1.5); % 边框宽度1.5
set(gca,'xcolor','m'); %设置x轴的颜色,包括字
set(gca,'ycolor','b'); %y轴分left和rightset(gcf,'MenuBar','none','Position',[X,Y,Z,W])
gcf:获取当前图的句柄,若图窗不存在,将创建新图窗并返回句柄。
MenuBar:菜单条
none:不显示菜单条
Position:指定窗口的位置及大小
[X,Y,Z,W]:图形窗口左下角距离屏幕左边为X像素点,距离屏幕下边Y像素点,窗口宽Z像素,高W点
常用:修改坐标轴范围:%% 强制修改范围,整个图发生变化
set(gca,'XLim',[0 30]);
%% 设置坐标轴的刻度范围
set(gca,'XTick',[0:3:72]);
在图的关键曲线数据进行标记:annotation('rectangle',[0.2,0.85,0.04,0.06],'LineStyle','-','Color','b','LineWidth',0.7);
annotation的选项:‘rectangle’:长方形; 'ellipse’椭圆; 'textbox’文本框; 'line’线
'arrow’箭头; 'doublearrow’ 双箭头; ‘textarrow’文本箭头
注释:0.2,0.85,0.04,0.06;分别是水平位置,垂直位置,水平大小,竖直大小
%% 箭头命令详解
annotation('arrow',[0.3,0.25],[0.6,0.8],'LineStyle','-','Color','k','LineWidth',0.7);
%其中,[0.3,0.25]为横坐标,[0.6,0.8]为纵坐标
3 matlab绘制单图多个曲线
采用下面命令绘制图像:
figure(2)
t = 0:1:20;
y1 = 2*sin(t);
yyaxis left
plot(t,y1);
title(['\fontname{宋体}曲线幅值'],'FontSize',12);
xlabel(['\fontname{宋体}时间\fontname{Times new roman}(t/s)'],'FontSize',12);
ylabel(['\fontname{宋体}幅值\fontname{Times new roman}(N·m)'],'FontSize',12);
hold on
y2 = 0.5*sin(t);
yyaxis right %%右y轴
plot(t,y2);
ylabel(['\fontname{宋体}频率\fontname{Times new roman}(f/hz)'],'FontSize',12);
ylim([-1 1]);
图3 曲线原图
在下方添加如下命令,直接删除 右y轴 的曲线% cla
3.1 获取图像句柄,直接修改图像
p=get(gca,'Children'); %获取曲线的句柄
检查获取的句柄是否为 曲线Line,可以直接对Line进行修改。
由于上面的图分为左右y轴,采用下面代码,可以将图3(曲线原图):
yyaxis left
p=get(gca,'Children'); %获取曲线的句柄
p(1).Marker = '<';
p(1).MarkerIndices = 1:2:20;
p(1).MarkerSize = 10;
yyaxis right
p=get(gca,'Children'); %获取曲线的句柄
p(1).Marker = 'hexagram';
p(1).MarkerIndices = 1:1:20;
p(1).MarkerSize = 10;
legend(['\fontname{宋体}曲线1'],['\fontname{宋体}曲线2'],'FontSize',9);
若是一张图,多种方法曲线对比,不分左右轴,获取的句柄是多条曲线,可以检查下曲线顺序。
3.2 图例的修改
一般来说:图例有可能遮挡曲线,此时需要将图例平铺、设为几行几列,甚至移到图像外:
legend({'m=0.1','m=0.5','m=1','m=2','m=5','m=10'},'Location','southoutside','NumColumns',6) %将图例平铺到图。
location的选项NumColumns:列数TextColor:字体颜色'hide' - 隐藏图例。'Show' - 显示图例或创建图例(如果不存在)。'toggle' - 切换图例可见性。Orientation:方向的选项vertical:垂直horizontal:并排
4 后期安排
(1)接下来将准备采用多个分图设置到一个图片上(subplot函数);
(2)有问题也可以评论区留言,看到回复,共同进步!
推荐文章
发表评论