一、Basic Plotting
1.some base functions
(1)plot(x, y) : 按照(x, y)坐标绘图
(2)lengend(‘L1’, ‘L2’, ‘L3’, …) : 依次将每个线L1, L2, L3…依次plot在Figure时会很乱,没有标识容易分不清哪条是哪条,使用lengend(‘sin(x)’, ‘cos(x)’, ‘Sigmoid’, ‘Gauss function’)即可出现下面标识:
注意:plot, legend函数较多,请自行help
2.title and labels
x坐标的标签就用 xlabel
y坐标的标签就用 ylabel
title 就是主题
标签和主题内容均用单引号扩起
绘出图像——
tips:
(1)上面 \pi 中 \ 的作用是转义,这样在Figure中xlabel显示的字符就是 “t = 0 to t = 2π”
而不是“t = 0 to t = 2pi”
(2){-x} 注意两边要用 {} 扩起
3.text and anotation
绘出图像——
tips:
(1)\int_{0}^{2} x^2\sin(x) dx
其实就是下面的数学公式:
‘
’
分开来看:
$$ ... $$ 只是一种LaTeX的标识,不用管
\int
就是∫
加上后面的_{a}^{b}
就是
那么结尾处的dx
就完成了整个式子
(2)annotation('arrow', 'X', '[0.32, 0.5]', 'Y', '[0.6, 0.4]')
annotation表示注释,'arrow'
就是箭头 的意思,前一个'X', '[0.32, 0.5]'
两个值分别是开始的x坐标与终点的x坐标,后一个'Y', '[0.6, 0.4
]'
两个值分别是开始的y坐标与终点y坐标
二、Getting Object Property
方便理解,先给出一段代码作为下面示例代码的开头:
x = linspace(0, 2*pi, 1000);
y = sin(x); plot(x, y);
h = plot(x, y);
4.Setting Axes Limits
下面的 gca
其实是axes
的句柄(handle)
set(gca, 'XLim', [0, 2*pi]); %改变Figure左右宽度
set(gca, 'YLim', [-1.2, 1.2]);%改变Figure上下宽度
Alternative(与上面等效)
xlim([0, 2*pi]);
ylim([-1.2, 1.2]);
绘出图像——
5.Setting Font and Tick of Axes
set(gca, 'FontSize', 25); %改变坐标轴上的字体
set(gca, 'XTick', 0:pi/2:2*pi); %这个是真实定义域
set(gca, 'XTickLabel', 0:90:360);%这个是为标记定义域(比如我们设这是90°-360°)
set(gca, 'XTickLabel', {'0', '\pi/2', '\pi', '3\pi/2', '2\pi'}); %想要跟真实定义域一致还得自己写
绘出图像——
6.Line Specification
Line Style and width(线的样式和宽度)
set(h, 'LineStyle', '-.', ...
'LineWidth', 7.0, 'Color', 'g');
%设置线h的样式,宽度,颜色
Alternative
plot(x, y, '-.g', 'LineWidth', 7.0);
%本句与上一句作用相同,不过是又多plot了一次线(如果两句均有执行则现在有2层线)
绘出图像——
Try
delete(h)
%消除线h
绘出图像——
7.Marker Specification
face and edge color of the marker
tips:
MarkerEdgeColor
指的是标记的外沿颜色(本处为’k’, 黑色)
MarkerFaceColor
指的是标记的内容颜色(本处为’g’, 绿色)
MakerSize
指的是标记的大小
绘出图像——
8.Multiple Figures
运行左下方代码,可以一次出现两个Figure窗口,如右下方两窗口所示:
tips:
这样显示多个Figure后,gcf 和 gca 都将指的是当前Figure(即最后一个Figure)的状态;
gcf 返回当前Figure对象的句柄值
补充:
gca 返回当前axes对象的句柄值
gco 返回当前鼠标单击的句柄值,该对象可以是除 root对象 外的任意图形对象
9.Figure Position and Size
用下图来展示left,bottom,width,height 的作用
10.Several plots in one Figure
如何让多个子图在一个Figure里面显示呢?用 subplot 即可
下图表示图像分布方式,前两个参数 m 和 n 表示这是 m x n 的矩阵图,第三个参数表示该子图 plot 在第几块区域(注意区域顺序也是左->右,上->下)
然后我们再来追究一下 subplot 的更多用法:
axis normal
正常显示
axis square
使x,y轴表现得一样长
axis equal
使x,y轴的刻度实际一样长
axis equal tight
使x,y轴的刻度实际一样长且贴合我的曲线
注意:第四幅图标记错误,应为 axis equal tight
11.Control of Grid, Box, and Axis
先给英文定义:
然后我们看看实际效果:(对比 10.Several plots in one Figure 的图,中间四个不再单独讲解)
(1)gird on
给当前的 Figure 增加网格线
(不知道为啥前三个没变的往上看 8.Multiple Figures 的 tips)
(2)box on
把当前 Figure上和右两条 upperbound 框线去除
(3)axis off
去除轴线(只留下了绘制的图线)
12.Saving Figures into Files
可以用 saves 方法存储图像到文件
gcf
前面有介绍说是 Figure 的句柄,formattype
则有下面两种方式存储(Bitmap 和 Vector),且一般情况下推荐Vector方法:
tips:
想要高解析率或控制 size 和 resolution 时,使用 print 替代 saves.
本笔记多采自YouTubeMATLAB教学视频