学习MATLAB绘图基础(2)

MATLAB画图基础(2)

Figure Adjustment

Several properties:
Font 字体
Font size 字体大小
Axis limit 轴线设定
Tick position 刻度位置
Tick label 刻度

Graphical objects 绘图物件

A figure is composed of many objects
学习MATLAB绘图基础(2)_第1张图片
上图代码

x=linspace(0,2*pi,1000);
y=sin(x);
plot(x,y);
set(gcf,'Color',[1 1 1]);

输出结果
学习MATLAB绘图基础(2)_第2张图片

点击图片外围空白区域,轴线,图形,则依次会得到他们的相关属性
点击上图中的“查看”-“属性编辑器”将得到下图
学习MATLAB绘图基础(2)_第3张图片

点击更多属性能够得到更多关于图片属性的信息,或者点击“查看”-“属性检查器”也可以看到
学习MATLAB绘图基础(2)_第4张图片

Modifying Properties of An Object 更改属性

•Strategy:

  1. Identify the “handle” of an object
  2. Fetch or modify the object’s properties
    学习MATLAB绘图基础(2)_第5张图片
    在进行属性更改时,找到“handle”辨识码十分重要
    下图为部分辨识码。
    学习MATLAB绘图基础(2)_第6张图片
    在更改属性时,需要先对更改的部分进行获取,然后再进行修改设置
    学习MATLAB绘图基础(2)_第7张图片
    单纯的理论解释不好理解,下面进行举例说明
    学习MATLAB绘图基础(2)_第8张图片
    一步一步来,看看将会发生什么
    首先,输入以下代码
x = linspace(0, 2*pi, 1000);
y = sin(x);
h = plot(x,y);
get(h)

得到输出下图和Figure1(上文已经出现过,不再重复展示)
学习MATLAB绘图基础(2)_第9张图片
接着执行

get(gca)

会得到关于轴的属性信息与上图类似
在此基础上执行,进行下一步操作

Setting Axes Limits 设置坐标轴

输入以下代码

set(gca,'XLim',[0,2*pi]);
set(gca,'YLim',[-1.2,1.2]);

会得到一个更加合适的figure,此时的横轴和竖轴相比于原图更加合适
学习MATLAB绘图基础(2)_第10张图片
上述操作也可用以下代码代替

xlim([0, 2*pi]);
ylim([-1.2, 1.2]);

下面进行进一步优化figure,

Setting Font and Tick of Axes 设置轴的刻度和字体

更改坐标轴字体大小
代码如下

set(gca,'FontSize',25);

输出结果如下图:
学习MATLAB绘图基础(2)_第11张图片
可以看到此时的字体看起来更加舒服,更加有利于观察。
下面改变刻度值的个数

set(gca,'XTick',0:pi/2:2*pi);

得到下图,并可以看到横轴坐标点的个数发生改变
学习MATLAB绘图基础(2)_第12张图片

刻度标签的更改
代码如下

set(gca,'XTickLabel',0:90:360);

学习MATLAB绘图基础(2)_第13张图片
此时,我们还未能把刻度单位变成pai。我们需要把font变成symbol
因此输入以下代码

set(gca,'FontName','Symbol');
set(gca,'XTicklabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});

此时显示的结果如下
学习MATLAB绘图基础(2)_第14张图片
弹出的警告为
在这里插入图片描述
所以此时需要更改代码为

set(gca,'FontName','Latex');
set(gca,'XTicklabel',{'0','\pi/2','\pi','3\pi/2','2\pi'});

学习MATLAB绘图基础(2)_第15张图片

Line Specification 线规格

下面更改LineStyle,
代码

set(h,'LineStyle','-.','LineWidth',7.0,'Color','g');

结果如下
学习MATLAB绘图基础(2)_第16张图片
下面时另外一种更改’LineStyle’的方式,但是执行时与h无关,在原图上修改
最后,输入代码

delete(h);

此时,图像消失,但坐标轴的设置还在
学习MATLAB绘图基础(2)_第17张图片

Marker Specification 标记规范

关注点的颜色和边缘的标记
代码

x=rand(20,1);
set(gca,'FontSize');
plot(x,'-md','LineWidth',2, ...
    'MarkerEdgeColor','k', ...
    'MarkerFaceColor','g', ...
    'MarkerSize',10);
xlim([1,20]);

结果如下图
学习MATLAB绘图基础(2)_第18张图片

Exercise 练习

学习MATLAB绘图基础(2)_第19张图片
源代码如下:

t=linspace(1,2);
f=t.*t;
g=sin(2*pi*t);
hold on
plot(t,f,'-k','LineWidth',7);
plot(t,g,'o','markerfacecolor',[0.60 0.20 0.98]);
hold off
xlabel('Tims(ms)');
ylabel('f(t)');
title('Mini Assigment #1');
legend('t^2','sin(2\pit)');
get(gca)
set(gca,'XTick',1:0.2:2)
set(gca, 'YTick',-1:1:4)
set(gca,'FontSize',16)

结果
学习MATLAB绘图基础(2)_第20张图片

Multiple Figures 多图

同时画多幅图,分为两种情况:一种是分多个Figure,另外一中是在一个figure里
第一种情况
代码

x = -10:0.1:10;
y1 = x.^2 -8;
y2 = exp(x);
figure, plot(x,y1);
figure, plot(x,y2);

结果如下
学习MATLAB绘图基础(2)_第21张图片
•Be careful when using the gcf handle where there exists multiple figures。在使用“handle”时,一般是对最新的Figure或者subplot使用,所以需要注意。

Figure Position and Size 位置和尺寸

呼叫Figure以后,可以设置Figure Position and Size
将红色字符换成数字即可
学习MATLAB绘图基础(2)_第22张图片

Several Plots in One Figure 一图多画

m=row,n=column
学习MATLAB绘图基础(2)_第23张图片
实例
代码

t = 0:0.1:2*pi;
x = 3*cos(t);
y = sin(t);
subplot(2, 2, 1);plot(x, y);axis normal 
subplot(2, 2, 2);plot(x, y);axis square  %x轴整体的长度等于y轴整体的长度
subplot(2, 2, 3);plot(x, y);axis equal  %xy轴显示一个相同的单位时大小长度相同,最接近真是比例。
subplot(2, 2, 4);plot(x, y);axis equal tight %让画的图与边框相切

结果如下图
学习MATLAB绘图基础(2)_第24张图片

Control of Grid, Box, and Axis

学习MATLAB绘图基础(2)_第25张图片
grid格线:象限中间的格线可以打开关掉
box:与xy轴相对的线,让plot看起来是闭合的,也可以打开关掉
示例
执行

axis off

结果如下,都是对第四个plot进行操作,因为他是最新的
学习MATLAB绘图基础(2)_第26张图片
执行

axis on

可以返回原图
box示例
执行

box off

结果
学习MATLAB绘图基础(2)_第27张图片
同样执行

box on

也可返回原图

执行

 grid on

结果
学习MATLAB绘图基础(2)_第28张图片
依然是执行

grid off

返回原图

总结

本部分是在能画出图形的基础上,对坐标轴、文字和颜色等进行一些必要的调整,以方便观察。

你可能感兴趣的:(MATLAB学习,matlab,学习,python)