matlab hold on作用_Matlab画图属性介绍

cb83c8f05b8b7752f0b9c3ebc717b71d.png

本文摘要:

主要介绍matlab的画图对象句柄的属性,线的句柄属性和轴的句柄属性。通过修改句柄属性不同的值,可以达到显示不同绘图效果的作用。

26344e41a831e425a15087cea312c91e.png

我们先看一段简单的代码

theta = -pi:0.01:pi;
x = cos(theta);
y = sin(theta)+((cos(theta)).^2).^(1/3);
figure;
h = plot(x,y);

x和y根据极坐标的角度,算出的值,生成的图片如下:

c5e47c3f448ef51ca4e4aed8278e8463.png

h是我们所画的线的句柄,h里的属性如下图,我们可以修改h里的属性来修改我们所画线的显示图样。其中比较常用可以修改的有:

  • 线的颜色(Color)
  • 线的风格(LineStyle)
  • 线的宽度(LineWidth)
  • 线的标记样式(Marker)
  • 线的标记样式大小(MarkerSize)

f4ccd6b80b5087baf4d30d3fc2488d18.png

线的颜色(Color)

默认的颜色有以下这几种,比如想把线的颜色改为红色,可以使用

h.Color='red';

或用简称

h.Color='r';

b46dae0ed8402933df6d1ae869bdec1f.png

b0f56f99877eaad0aeda91bd9b218ef9.png

但是如果这几种颜色不能满足需求,还可以直接使用R.G.B的值

h.Color=[0.8500 0.3250 0.0980]

具体三原色值对应的颜色,可以在下面这个网站上查询,注意这边R.G.B的值的范围是0-1,所以如果是0-255范围的,需要除以255

https://tool.oschina.net/commons?type=3

线的风格(LineStyle)

线的风格主要有实线('-'),虚线('--'),点线(':'),点划线('-.')

cbc8b0b2abf7b4b7a1397c363b58167f.png

比如想使用虚线就输入命令

h.LineStyle = '--';

a32170e54fb7e248d1e45ab6c67246be.png

线的宽度(LineWidth)

线的宽度默认是0.5,如果想要线更粗,就把这个属性的值设大,越大越粗

h.LineWidth = 5;

167a8108fae82eee3fbbe2969a8d0a36.png

线的标记样式(Marker)

主要有以下这几种

351babea64757ffb5e9c7e3dc4f0ca72.png

比如如果想要不显示具体的线,只把点显示成圆形,可以使用如下命令

h.Marker = 'o';
h.LineStyle = 'none'; 

3180590972d70f3d592af2d272121a76.png

线的标记样式大小(MarkerSize)

这个属性的值越大,那么标记也就越大,比如我们想要圆圈标记小一些
h.MarkerSize = 3

cc81e48b0c31b35f3ab5bde47dad4dbc.png

线的属性介绍完了,线的父级对象是轴,我们可以获取轴的句柄

ax = h.Parent;

对于轴的属性,一般的常用修改有:

  • 给当前绘图加标题以及给各个轴加标题
  • 控制各个轴显示的范围,以及轴上的显示的标尺
  • 控制各个轴网格的显示
  • 控制在当前轴上继续绘图
  • 控制显示当前轴上各个绘图的标签显示
  • 在一个图框中画多个坐标轴

给当前绘图加标题以及给各个轴加标题

ax.Title.String = '520';
ax.XLabel.String = 'x-axis';
ax.YLabel.String = 'y-axis'; 

通过上述的命令,可以给当前绘图以及轴加标题

a7ef3333e4c13f3eccbcc0f71e65043e.png

控制各个轴显示的范围,以及轴上的显示的标尺

将绘图的坐标轴范围都变为[-2 2]

ax.XLim = [-2 2];
ax.YLim = [-2 2];

6a9cc70dc8297c23bce7d6931be9e0c5.png

将x轴以及y轴的标尺变为字符

ax.XTickLabel = {'L';'O';'V';'E';'!'};
ax.YTickLabel = {'!';'!';'R';'E';'B';'E';'I';'L';'!'};

1434ca0fe065bfe25a5371c5e6851392.png

控制各个轴网格的显示

给x和y轴加上粗网格

ax.XGrid = 'on';
ax.YGrid = 'on';

25f4f92184eba98def48b7a84d2e5e13.png

给x和y轴加上细网格

ax.XMinorGrid = 'on';
ax.YMinorGrid = 'on';

35527bce2397c6167bd98ca6c98617a4.png

控制在当前轴上继续绘图

ax.NextPlot = 'add';
h = plot(x,y-0.5);

93d067ba50a914fae11ff65cc86b74d2.png

其中如果想要在当前轴上重新绘图,则输入

ax.NextPlot = 'replace';

控制显示当前轴上各个绘图的标签显示

如果一个轴上有多个绘图,想要给各个图做标注的话,可以使用如下命令。其中有几个绘图就填几个标注。

legend(ax,{'Line 1','Line 2'});

5ba56b7d2adafdb4b891a5f0c4524a6a.png

在一个图框中画多个坐标轴

还可以在一个图框中再加一个轴,进行绘图

ax2 = axes('Position',[0.15 0.15 0.2 0.2],'Box','on');
plot(x,y,'r');
ax2.XLim = [-2 2];
ax2.YLim = [-2 2];

0a5bbff81eb5ed83e5c14fdb41651d77.png

还可以在一个图框中创建多个Tab,然后分别进行绘图

figure;
tab1 = uitab('Title','Tab1');
ax1 = axes(tab1);
plot(x,y,'r');
tab2 = uitab('Title','Tab2');
ax2 = axes(tab2);
plot(x,y,'m');

5899d5b4d1ffc62794f8427dd0cd39c6.png

关于绘图对象句柄的常用属性就介绍完啦,相信熟练掌握这些命令后,就可以自由组合,画出自己想要的图形了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值