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)有问题也可以评论区留言,看到回复,共同进步!

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: