MATLAB绘图总结(1)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值