二维图形包括线性(Line Plots)、散点型(Scatter Plots)、条型(Bar Slots)、极坐标型(Polar Slots)及矢量图形(Vector Fields)等。单击相应的类型,就可以查看相应的用法
1.plot命令
- plot(x,y):以x为横坐标,y为纵坐标,按照坐标(x,y)的有序排列绘制曲线
- plot(y):y为一维数组,以1:n为横坐标,y为纵坐标,绘制曲线(n为y的长度)
- plot(z):z为一维复数数组,以横轴为实轴,纵轴为虚轴,在复平面上绘制(real(z),imag(z))的有序集合的图形
1 2 3 4 5 6 |
X = -10:10;Y = X.^2; figure(1) subplot(1,3,1);plot(X,Y,'LineWidth',2); subplot(1,3,2);plot(Y,'LineWidth',2);xlim([1 length(Y)]); Z = cos(-pi:pi/100:pi) + sqrt(-1)*sin(-pi:pi/100:pi); subplot(1,3,3);plot(Z,'LineWidth',2); |
- plot(A):绘制矩阵A的列对它下标的图形。对于m*n的矩阵A,有n个含有m个元素的数对,或是n条有m个点的曲线,且这n条曲线均采用颜色监视器上不同的颜色绘制而成
1 2 3 |
A = magic(20); A(1:5,:) = []; plot(A) |
- plot(x,A):绘制矩阵A对向量x的图形。对m*n的矩阵A和长度为m的向量x,绘制矩阵A的列对向量x的图形;如果x的长度为n,则绘制矩阵A的行对向量x的图形。向量x可以为行向量也可为列向量
- plot(A,x):绘制向量x对矩阵A的图形。对m*n的矩阵A和长度为m的向量x,对矩阵A的列绘制向量x的图形;如果x的长度为n,则对矩阵A的行绘制向量x的图形。向量x可以为行向量也可为列向量
- plot(A,B):对矩阵A的行绘制矩阵B的列的图形。如果A和B都是m*n的矩阵,则将绘制n条有m个有序对连成的曲线
1 2 3 4 5 6 7 8 9 10 11 12 13 |
for i = 1:5 for j = 1:6 A(i,j) = i+j; end end x = 0 : 0.2 : 1; % x = 0.2 : 0.2 : 1; %自动匹配 figure(1) subplot(2,2,1);plot(A,x); subplot(2,2,2);plot(x,A); B = reshape(1:30,5,6); subplot(2,2,3);plot(A,B); subplot(2,2,4);plot(B,A); |
- plot(x,y,str):用字符串str指定的颜色和线型对y绘制x的图形
- plot(x1,y1,str1,x2,y2,str2,…):在一幅图中对y1绘制x1,颜色和线型由str1决定;对y2绘制x2的线型,颜色和线型由str2决定;…str可省略,省略后为MATLAB自动匹配颜色线型
1 2 3 4 5 6 7 8 9 10 11 12 |
j = sqrt(-1); x = 2; y = 0.4; Circle_Blue = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y - x); Circle_Black = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y); Circle_Red = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y + x); Circle_Yellow = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) - (j*y - x/2); Circle_Green = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) - (j*y + x/2); plot(Circle_Blue, 'b');hold on; plot(Circle_Black, 'k');hold on; plot(Circle_Red, 'r');hold on; plot(Circle_Yellow,'y');hold on; plot(Circle_Green, 'g'); |
2.栅格
在plot函数后加上grid on命令可以为图形加上栅格
grid off取消栅格显示
grid转换状态
1 2 3 4 5 6 7 8 9 10 11 12 13 |
j = sqrt(-1); x = 2; y = 0.4; Circle_Blue = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y - x); Circle_Black = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y); Circle_Red = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) + (j*y + x); Circle_Yellow = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) - (j*y - x/2); Circle_Green = cos(-pi : pi/30 : pi) + j*sin(-pi : pi/30 : pi) - (j*y + x/2); figure(1) subplot(1,5,1);plot(Circle_Blue, 'b');grid on; subplot(1,5,2);plot(Circle_Black, 'k');grid off; subplot(1,5,3);plot(Circle_Red, 'r');grid; subplot(1,5,4);plot(Circle_Yellow,'y');grid on;grid; subplot(1,5,5);plot(Circle_Green, 'g'); |
3.文字说明
- title(‘text’):在图形窗口顶端的中间位置输出字符串‘text’作为标题
- xlabel(‘text’):在x轴下边的中间位置输出字符串‘text’作为标注
- ylabel(‘text’):在y轴下边的中间位置输出字符串‘text’作为标注
- zlabel(‘text’):在z轴下边的中间位置输出字符串‘text’作为标注
- text(x,y,’text’):在图形窗口的(x,y)位置输出字符串‘text’。坐标x、y按照与所绘制图形的相同刻度给出
- text(x,y,’text’,’sc’):在图形窗口的(x,y)位置输出字符串‘text’。坐标x、y按照左下角为(0,0),右上角为(1,1)为标准
- gtext(‘text’):用十字光标在图上做标记,内容为‘text’
- legend(‘str1’,’str2’,…pos):在当前图形上输出图例,并用说明性字符串str做标注。其中pos参数如下:
线型代号 | 表示线型 |
-1 | 将图例框放在坐标轴外的右侧 |
0 | 将图例框放在图窗内与曲线交叠最小的位置 |
1 | 将图例框放在图窗内右上角 |
2 | 将图例框放在图窗内左上角 |
3 | 将图例框放在图窗内左下角 |
4 | 将图例框放在图窗内右下角 |
- legend(‘str1’,’str2’,…,’Location’,’pos’):在当前图形上输出图例,并用说明性字符串str做标注。pos可选以下选项
‘North’ inside plot box near top
‘South’ inside bottom
‘East’ inside right
‘West’ inside left
‘NorthEast’ inside top right (default for 2-D plots)
‘NorthWest’ inside top left
‘SouthEast’ inside bottom right
‘SouthWest’ inside bottom left
‘NorthOutside’ outside plot box near top
‘SouthOutside’ outside bottom
‘EastOutside’ outside right
‘WestOutside’ outside left
‘NorthEastOutside’ outside top right (default for 3-D plots)
‘NorthWestOutside’ outside top left
‘SouthEastOutside’ outside bottom right
‘SouthWestOutside’ outside bottom left
‘Best’ least conflict with data in plot
‘BestOutside’ least unused space outside plot
但是我测试时觉得不好用,可能是我用错了,不过可以用鼠标拖动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
x = 0 : 0.01*pi : pi/2; y = cos(x)+sqrt(-1)*sin(x); plot(y*2, 'r');hold on; x = pi/2 : 0.01*pi : pi; y = cos(x)+sqrt(-1)*sin(x); plot(y*2, 'y');hold on; x = -pi : 0.01*pi : -pi/2; y = cos(x)+sqrt(-1)*sin(x); plot(y*2, 'b');hold on; x = -pi/2 : 0.01*pi : 0; y = cos(x)+sqrt(-1)*sin(x); plot(y*2, 'g');hold on; title('坐标系'); text([1.5,-3,1.5,-3],[2,2,-2,-2],{'第一象限','第二象限','第三象限','第四象限'}) legend({'[0 0.5\pi]','[0.5\pi pi]','[\pi 1.5\pi]','[1.5\pi 2\pi]'}) xlim([-5 5]);ylim([-5 5]); plot([-4 4],[0,0],'k');hold on; plot([0,0],[-4 4],'k');hold on; axis off |
- Legendoff:从当前图形中清除图例
4.线型、标记和颜色
线型共5种
线型代号 | 表示线型 |
– | 实现 |
— | 虚线 |
-. | 点画线 |
: | 点线 |
none | 无线 |
标记共14种
标记代号 | 表示标记 | 标记代号 | 表示标记 | |
. | 点 | 。 | 。 | |
* | 星号 | + | + | |
square | 正方形 | x | 乘 | |
diamond | 菱形 | < | 顶点在左的三角形 | |
pentagram | 五角星型 | > | 顶点在右的三角形 | |
hexagram | 六角星型 | ^ | 正三角形 | |
none | 无点 | v | 倒三角形 |
颜色共8种
颜色代号 | 表示颜色 |
g | 绿色green |
m | 品红色magenta |
b | 蓝色blue |
c | 灰色cinerous |
w | 白色white |
r | 红色red |
k | 黑色black |
y | 黄色yellow |
5.坐标轴设置
命令 | 描述 | 命令 | 描述 | |
axis auto | 使用坐标轴默认设置 | axis (xmin,xmax,
ymin,ymax) |
分别定义x,y轴的坐标范围 | |
axis manual | 保持当前坐标刻度范围 | axis equal | 横纵坐标采用等长刻度 | |
axis fill | 在manual方式下有效,使坐标填满整个绘图区 | axis image | 横纵坐标采用等长刻度,且坐标框紧贴数据范围 | |
axis off | 取消坐标轴标签、刻度及背景 | axis title | 把数据范围直接设定为坐标范围 | |
axis on | 打开坐标轴标签、刻度及背景 | axis square | 使用正方形坐标系 | |
axis ij | 使用矩阵式坐标,原点在左上方 | axis normal | 使用默认矩形坐标系,取消单位刻度的限制 | |
axis xy | 使用直角坐标,原点在左下方 |
6.图形叠绘
hold on:保持当前图形,不会被刷新
hold off:不保留当前图形
转载请注明:燕骏博客 » MATLAB自学笔记(十四):二维图形绘制1
赞赏作者微信赞赏支付宝赞赏