1、Matlab 二维绘图1 基本绘图函数plotloglogsemilogxsemilogyplotyy2 图形修饰2.1 窗体的控制与分割subplot2.2 色彩与线型、数据点型颜色 点型 线型符号 含义 符号 含义 符号 含义b 蓝色 + 十字符 - 实线g 绿色 o 空心圆 双划线r 红色 * 星号 : 虚线c 青色 . 实心圆 -. 点划线m 品红色 x 叉符y 黄色 s 正方符k 黑色 d 菱形符w 白色 上三角符v 下三角符右三角符p 五星符h 六星符2.3 坐标系的修饰grid ongrid offgrid minorgridhold onhold offhold allhold
2、box onbox offboxv=axisaxis autoaxis tightaxis fillaxis ijaxis xyaxis offaxis on2.4 基本 xy 平面绘图命令 plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的 x 及 y 座标。下例可画出一条正弦曲线: close all;x=linspace(0, 2*pi, 100); % 100 个点的 x 座标 y=sin(x); % 对应的 y 座标 plot(x,y); 小整理:MATLAB 基本绘图函数 plot: x 轴和 y 轴均为线性刻度(Linear scale) logl
3、og: x 轴和 y 轴均为对数刻度(Logarithmic scale) semilogx: x 轴为对数刻度,y 轴为线性刻度 semilogy: x 轴为线性刻度,y 轴为对数刻度 若要画出多条曲线,只需将座标对依次放入 plot 函数即可: plot(x, sin(x), x, cos(x); 若要改变颜色,在座标对後面加上相关字串即可: plot(x, sin(x), c, x, cos(x), g); 若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字串即可: plot(x, sin(x), co, x, cos(x), g*); 图形完成後,我们可用
4、axis(xmin,xmax,ymin,ymax)函数来调整图轴的范围: axis(0, 6, -1.2, 1.2); 此外,MATLAB 也可对图形加上各种注解与处理: xlabel(Input Value); % x 轴注解 ylabel(Function Value); % y 轴注解 title(Two Trigonometric Functions); % 图形标题 legend(y = sin(x),y = cos(x); % 图形注解 grid on; % 显示格线 我们可用 subplot 来同时画出数个小图形於同一个视窗之中: subplot(2,2,1); plot(x,
5、sin(x); subplot(2,2,2); plot(x, cos(x); subplot(2,2,3); plot(x, sinh(x); subplot(2,2,4); plot(x, cosh(x); MATLAB 还有其他各种二维绘图函数,以适合不同的应用,详见下表。 小整理:其他各种二维绘图函数 1 bar 长条图2 errorbar 图形加上误差范围 3 fplot 较精确的函数图形 4 polar 极座标图5 hist 累计图6 rose 极座标累计图7 stairs 阶梯图8 stem 针状图9 fill 实心图10 feather 羽毛图11 compass 罗盘图12
6、quiver 向量场图 当资料点数量不多时,长条图是很适合的表示方式close all; % 关闭所有的图形视窗 x=1:10; y=rand(size(x); bar(x,y); 对於变化剧烈的函数,可用 fplot 来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例: fplot(sin(1/x), 0.02 0.2); % 0.02 0.2是绘图范围 若要产生极座标图形,可用 polar: theta=linspace(0, 2*pi); r=cos(4*theta); polar(theta, r); stairs 可画出阶梯图: x=linspace(0,10,50); y=
7、sin(x).*exp(-x/3); stairs(x,y); fill 将资料点视为多边行顶点,并将此多边行涂上颜色: x=linspace(0,10,50); y=sin(x).*exp(-x/3); fill(x,y,b); % b为蓝色 feather 将每一个资料点视复数,并以箭号画出: theta=linspace(0, 2*pi, 20); z = cos(theta)+i*sin(theta); feather(z); compass 和 feather 很接近,只是每个箭号的起点都在圆点: theta=linspace(0, 2*pi, 20); z = cos(theta)+i*sin(theta); compass(z);