首先推荐一篇matlab绘图的博文:https://blog.csdn.net/sunyueqinghit/article/details/81905509
一.二维图
1.二维曲线图
程序
x = 0:0.25:12;
y1 = x.^2;
y2 = 12 - x;
plot(x, y1, x, y2)
xlabel('x');ylabel('y');
%产生图例
legend('y1=x^2', 'y2=12-x');
title('马驰绘制');
%图中x轴和y轴的范围,中括号前面是y轴范围,中括号后面是x轴范围
axis([0 15 0 15]);
text(3, 9, '交点');
%画图时加上网格线
grid on
效果
2.含选项的plot函数
Matlab提供了一些绘图选项,用于确定所绘曲线的线性、颜色和数据点标记符号。这些选项如表所示:
线型 | 颜色 | 标记符号 | |
- 实线 | b 蓝色 | . 点 | s 方块 |
: 虚线 | g 绿色 | o 圆圈 | d 菱形 |
-. 点划线 | r 红色 | × 叉号 | ∨朝下三角符号 |
-- 双划线 | c 青色 | + 加号 | ∨朝下三角符号 |
m 品红 | * 星号 | <朝左三角符号 | |
y 黄色 | >朝右三角符号 | ||
k 黑色 | p 五角星 | ||
w 白色 | h 六角星 |
3.双纵坐标函数plotyy
在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为:plotyy(x1,y1,x2,y2)
x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。
4.散点图
参考博文:https://blog.csdn.net/xuxinrk/article/details/80212221
二.三维图
1.三维曲线图
程序
t = 0:pi/50:2*pi;
x = 8 * cos(t);
y = 4*sqrt(2)*sin(t);
z = -4*sqrt(2)*sin(t);
%三维曲线作图函数plot3
plot3(x, y, z, 'p');
title('Line in 3-D Space');
text(0, 0, 0, 'origin');
xlabel('X');
ylabel('Y');
zlabel('Z');
grid;
效果
2.三维网格图
代码
% 数据准备
t=0:pi/10:pi;
x=sin(t);
y=cos(t);
[X,Y]=meshgrid(x,y);
z =X + Y;
% 绘图
figure
%绘制三维网格图
mesh (z,'FaceColor','W','EdgeColor','K')
grid
title('三维网格图');
效果
3.三维表面图
代码
xx = linspace(-1,1,50);
yy = linspace(-2,2,100);
%使用meshgrid函数生成数据网格,画三维图时必须生成二维坐标
[x,y] = meshgrid(xx, yy);
z = x.^2 + 2*y.^2;
%surf是matlab画三维表面图的函数
surf(x, y, z);
效果
4.等高图
代码
[x,y,z]=peaks;
subplot(1,2,1);
plot3(x,y,z);
contour(x,y,z) %绘制三维等高图
subplot(1,2,2);
surfc(x,y,z) %同时绘制等高图和曲面图
5.伪色图
概念:用带栅格的二维阴影图代替等高图中的轮廓线。
[x,y,z]=peaks;
subplot(2,2,1);
pcolor(x,y,z);
title('绘制伪色图')
subplot(2,2,2);
pcolor(x,y,z);
shading interp;
title('去掉了三维图形的网格')
subplot(2,2,3);
pcolor(x,y,z);
shading interp;
hold on;
contour(x,y,z,20,'k')
title('在图形上叠加等高线')
subplot(2,2,4);
contour(x,y,z)
title('普通的等高图')