matlab绘图基础

本文详细介绍了MATLAB的绘图基础,包括如何创建二维线图、设置坐标轴范围、更改图形外观、添加网格线,以及如何在一个图窗中添加多个绘图区。此外,还探讨了三维图的创建,如plot3、mesh和surf函数的使用,帮助读者掌握MATLAB绘图的基本技巧。
摘要由CSDN通过智能技术生成

1.创建二维线图

1.1plot函数创建线图

使用 plot(x,y) 函数创建二维线图,其中x表示横坐标,y表示纵坐标。x、y可用一串向量表示,比如:X=linspace(1,100),或者用X=(start:step:end)表示

%例如,绘制从 0 到 2π 之间的正弦函数值。
x = linspace(0,2*pi,100);
y = sin(x);
plot(x,y)

结果:

还可以利用xlim、ylim指定坐标轴范围

1.2标记坐标区并添加标题

%继以上代码,xlabel标记横轴,ylabel标记纵轴,title添加标题,legend右上角添加图示;
%注意是先plot图像,再设置以下坐标图释等
xlabel('x')
ylabel('y')
legend('sinx')
title('Plot of the Sine Function')

结果:

1.3更改图形外观、一个绘图窗口添加若干图形

通过在调用 plot 函数时包含可选的线条设定,可以更改线条颜色、线型或添加标记。例如:

  • ':' 绘制点线。

  • 'g:' 绘制绿色点线。

  • 'g:*' 绘制带有星号标记的绿色点线。

  • '*' 绘制不带线条的星号标记。

符号可以按任意顺序显示。不需要同时指定所有三个特征(线条颜色、线型和标记

要将绘图添加到现有图窗中,

请使用 hold on。在使用 hold off 或关闭窗口之前,当前图窗窗口中会显示所有绘图。


x = linspace(0,2*pi,100);
y = sin(x);
plot(x,y,"b:") %设置第一条曲线外观
hold on  %图形保持

y2 = cos(x);
plot(x,y2,'--ro') %设置第二条曲线外观
xlabel('x')
ylabel('y')
legend('sinx','cosx')
title('Plot of the Function')
hold off

结果:

1.4通过更改图形对象属性更改外观

创建一个线图。将创建的 Line 对象赋给变量 ln。显示画面上显示常用属性,例如 Color、LineStyle 和 LineWidth


x = linspace(0,2*pi,25);
y = sin(x);
ln = plot(x,y)

结果:


ln = 
  Line with properties:

              Color: [0 0.4470 0.7410]
          LineStyle: '-'
          LineWidth: 0.5000
             Marker: 'none'
         MarkerSize: 6
    MarkerFaceColor: 'none'
              XData: [0 0.2618 0.5236 0.7854 1.0472 1.3090 1.5708 1.8326 ... ]
              YData: [0 0.2588 0.5000 0.7071 0.8660 0.9659 1 0.9659 ... ]

  Show all properties

要访问各个属性,请使用圆点表示法。例如,将线宽更改为 2 磅并将线条颜色设置为 RGB 三元组颜色值,在本例中为 [0 0.5 0.5]。添加蓝色圆形标记

%继以上代码
ln.LineWidth = 2;
ln.Color = [0 0.5 0.5];
ln.Marker = 'o';
ln.MarkerEdgeColor = 'b';

结果:

1.5添加网格线

grid on网格线显示在刻度线处

grid minor在刻度线之间添加次网格线

grid off 关闭所有网格线


x = linspace(0,2*pi,100);
y = sin(x);
plot(x,y)
grid on
grid minor

结果:

在特定方向显示网格线

通过访问 Axes 对象并设置 XGrid、YGrid 和 ZGrid 属性,可在特定方向显示网格线。这些属性可以设置为 'on' 或 'off'

%以下示例仅在y轴添加刻度线
y = rand(10,1);
bar(y)
ax = gca;
ax.XGrid = 'off';
ax.YGrid = 'on';

结果:

1.6在一个图窗添加多个绘图区

方法一:subplot

先用subplot添加画布分区,再用plot或其他进行绘图。


x = linspace(0,2*pi,100);
y = sin(x);
subplot(211) %将画布分为二行一列,添加第一个绘图区
plot(x,y,"b:") %设置第一条曲线外观
xlabel('x')
ylabel('y')
legend('sinx')

subplot(212) %将画布分为二行一列,添加第二个绘图区
y2 = cos(x);
plot(x,y2,'--ro') %设置第二条曲线外观
xlabel('x')
ylabel('y')
legend('cosx')

结果:

方法二: tiledlayout+ nexttile

使用 tiledlayout 函数在单个图窗中显示多个坐标区。此函数将创建一个分块图布局,该布局将图窗分为一系列不可见的图块网格。每个图块可以包含一个用于显示绘图的坐标区。创建布局后,调用 nexttile 函数将坐标区对象放置到布局中。然后调用绘图函数在该坐标区中绘图


x = linspace(0,2*pi,100);
y1 = sin(x);
y2 = cos(x);
tiledlayout(2,1)  %创建二行一列布局

% 第一个分区绘图
nexttile
plot(x,y1)
title('Plot 1')

% 第二个分区绘图
nexttile
plot(x,y2)
title('Plot 2')

结果:

2.创建三维图

方法一:plot3(x,y,z)

语法与说明:

  • plot3(X,Y,Z) 绘制三维空间中的坐标。


t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)

结果:

  • plot3(X,Y,Z,LineSpec) 使用指定的线型、标记和颜色创建绘图。


t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,'o')

结果:

  • plot3(X1,Y1,Z1,...,Xn,Yn,Zn) 在同一组坐标轴上绘制多组坐标。使用此语法作为将多组坐标指定为矩阵的替代方法。


t = 0:pi/500:pi;
xt1 = sin(t).*cos(10*t);
yt1 = sin(t).*sin(10*t);
zt1 = cos(t);

xt2 = sin(t).*cos(12*t);
yt2 = sin(t).*sin(12*t);
zt2 = cos(t);

plot3(xt1,yt1,zt1,xt2,yt2,zt2)

结果:

方法二:mesh(x,y,z)+mesh(x,y),其中meshgrid的作用就是生成网格(矩阵)数据x,y


t = 0:pi/500:pi;
xt1 = sin(t).*cos(10*t);
yt1 = sin(t).*sin(10*t);
[xt1,yt1]=meshgrid(xt1,yt1)
zt1 = xt1+yt1.^2;

mesh(xt1,yt1,zt1)

结果:

方法三:surf(x,y,z)

t = 0:pi/500:pi;
xt1 = sin(t).*cos(10*t);
yt1 = sin(t).*sin(10*t);
[xt1,yt1]=meshgrid(xt1,yt1)
zt1 = xt1+yt1.^2;

surf(xt1,yt1,zt1)

注意方法二和方法三绘制出来的区别:

三维曲面图和三维网格图不同,其区别有: 

  (1)网线图:线条有颜色,内部是无颜色

  (2)曲面图:线条是黑色的,内部有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化)

利用shading渲染一下:

%继以上代码,添加下行
shading interp

方法还有很多,简单介绍以上基础,其他可以自行探索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值