【MATLAB】二维矩阵可视化 MATLAB绘图

基本绘图函数

1、plot(y)

如果y是向量,则采用向量的索引值作为横坐标值,以向量元素的值作为纵坐标值。

如果y是实数矩阵,则相当于对y的每一列进行二维绘图。

如果y是复数组成的向量,则相当于plot(real(y),imag(y))。

2、plot(x,y)

当x和y都是矢量,如果其长度相等,则以x为横坐标,y为纵坐标。

当x为矢量,y是有一维与x同维的矩阵时,则以x为共同的横坐标绘制多条不同颜色的曲线,曲线的条数由y的另一维决定。

当x,y是同维的矩阵时,则以x和y对应的列元素为横纵坐标分别绘制曲线,曲线条数等于矩阵的列数。

clear all;
x=1:7;
y=magic(7);
plot(x,y);

clear all;
x=1:7;
y=magic(7);
plot(x,y)

 3、plot(x,y,s)

s是对二维绘图的线型和颜色等进行设置。

二维绘图常用设置
线型说明标记符说明颜色说明
-实线(默认)+加号符r红色
--虚线o空心圆g绿色
点线*星号b蓝色
-.点划线.实心圆c青绿色
  x叉号符m洋红色
  s正方形y黄色
  d菱形k黑色
  ^上三角形w白色
  

v

下三角形  
  >右三角形  
  <左三角形  
  p正五边形  
  h六边形  
clear all;
x=0.01:0.3:2*pi;
y=cos(x+0.5)+2;
subplot(2,2,1);
plot(x,y,'k');
subplot(2,2,2);
plot(x,y,'k.');
subplot(2,2,3);
plot(x,y,'k-^');%表示用黑色的实线(默认)连接各点,各点采用上三角标记。
subplot(2,2,4);
plot(x,y,'k^');

 

函数plot()绘图的PropertyName
PropertyName说明取值
LineWidth线宽数字,单位是points
MarkerEdgeColor标记点边框的颜色颜色字符
MarkerFaceColor标记点内部填充颜色颜色字符
MarkerSize标记点大小数字,单位是points
%如左下图
clear all;
x=-pi:pi/10:pi;
y=tan(sin(x))-sin(tan(x));
plot(x,y,'--rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);

4、plot(x1,y1,s1,x2,y2,s2,...)

%如右上图
clear all;
x=-pi:pi/10:pi;
y=sin(x);
z=cos(x);
figure;
plot(x,y,'r:',x,z,'k-');

 子图绘制

subplot进行子图绘制。

  • subplot(m,n,p):该函数将当前窗口分成m x n个绘图区。子绘图区的编号按行优先从左到右编号。
clear all;
x=-pi:pi/10:pi;
figure;
subplot(221);
plot(x,sin(x),'r--');
subplot(223);
plot(x,cos(x),'b:*');
subplot(2,2,[2,4]);
plot(x,sin(x)+cos(x),'b-.^');

叠加图绘制

hold函数启动或关闭图形保持功能。

  • hold on:启动图形保持功能,允许在同一坐标轴上绘制多个图
  • hold off:关闭图形保持功能。
  • hold:在hold on 和 hold off之间切换。

设置坐标轴

  • axis([xmin xmax ymin ymax])
  • axis([xmin xmax ymin ymax zmin zmax])
  • axis off :取消坐标轴的一切设置
  • axis on :恢复坐标轴的一切设置

网格线和边框

通过函数gird()给坐标轴加网格线

  • grid on :给当前坐标轴添加网格线
  • grid off :取消当前坐标轴的网格线
  • grid :在grid on 和 grid off 之间切换
clear all;
x=-pi:pi/10:pi;
figure;
plot(x,sin(x)+cos(x),'b-.^');
grid on

box()函数给坐标轴加边框

  • box on :该函数给当前坐标轴添加框线。
  • box off :该函数取消当前坐标轴的边框线。
  • box :不带参数时,在box on 和box off 之间切换。
%见右上图
clear all;
x=-pi:pi/10:pi;
figure;
plot(x,sin(x)+cos(x),'b-.^');
box off

数据光标

datacursormode()显示鼠标所选的图形上某点的坐标值。

  • datacursormode on :该函数打开图形的数据光标功能。
  • datacursormode off : 该函数关闭图形的数据光标功能。
  • datacursormode:在datacursormode on 和 datacursormode off 之间转换。
%见左下图
clear all;
x=0.1:0.1:2*pi;
y=sin(x);
figure;
plot(x,y,'--r');
datacursormode on

极坐标绘图

  • polar(theta,rho):弧度为theta,半径为rho
  • polar(theta,rho,s):参数s对曲线的线型、标记和颜色等信息进行设置。
%见右上图
clear all;
x=0:0.02:2*pi;
y=sin(2*x).*cos(2*x);
figure;
polar(x,y,'--r');
  • [x,y]=pol2cart(theta,rho):将极坐标转换为直角坐标
  • [x,y,z]=pol2cart(theta,rho,Z)
  • [theta,rho]:cart2pol(x,y):将直角坐标转换为极坐标
  • [theta,rho,Z]:cart2pol(x,y,z)
clear all;
theta=0:pi/40:4*pi;
rho=sin(theta);
figure;
subplot(211);
polar(theta,rho);
[x,y]=pol2cart(theta,rho);
subplot(212);
plot(x,y);
axis equal

对数和半对数坐标系绘图

semilogx():x轴采用对数坐标,y轴采用等比例刻度坐标。

semilogy():y轴采用对数坐标,x轴采用等比例刻度坐标。

loglog():x,y 轴采用对数坐标。

双纵轴绘图

  • plotyy(x1,y1,x2,y2):(x1,y1)采用左侧y轴,(x2,y2)采用右侧y轴
  • plotyy(x1,y1,x2,y2,'function'):function可以是"plot","semilogx","semilogy","loglog"
  • plotyy(x1,y1,x2,y2,'function1','function2'):function1绘制(x1,y1),function2绘制(x2,y2)
clear all;
x=0.1:0.1:2*pi;
y=sin(x);
z=10.^x;
figure;
plotyy(x,y,x,z,'plot','semilogy');

  • 19
    点赞
  • 183
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Matlab中,二维矩阵画三维图通常使用的函数是“surf”和“mesh”。这两个函数都可以用来绘制三维曲面,但是它们有一些细微的区别。 “surf”函数将二维矩阵的值映射到三维曲面上。这个函数绘制出一个平滑的曲面,它的灰度值表示了该点的高度。这样,我们就可以通过调整曲面的颜色和高度来可视化一个三维数据集。 “mesh”函数也可以绘制三维曲面,但是它更注重于显示曲面的线框结构。它的输出结果是由曲面上的线条和网络点组成的一个三维网格,每个点的灰度值代表了这个点在二维矩阵中的值。 如果想要绘制二维数据的三维表面,首先需要创建一个二维数组,程序会将这个数组定义为一个矩阵。这样的一个矩阵可以是一个函数的输出,也可以是从一个文本文件或者Excel表格中导入的数据。一旦创建了这个矩阵,就可以使用“surf”或者“mesh”函数来创建三维图。 例如,我们想要创建一张三维图,其Z轴表示函数f(x,y)的值,我们可以将函数f定义为一个矩阵。然后,我们可以使用“surf”函数来画出这个矩阵的三维图像。这个函数可以将矩阵的值映射到一个三维表面上,其中每个点的高度表示该点的值。这个操作可以用以下代码来实现: x = 0:0.1:10; y = 0:0.1:10; [X,Y] = meshgrid(x,y); Z = sin(X).*cos(Y); surf(X,Y,Z); 这段代码首先创建了两个从0到10的数组x和y,其间隔为0.1,用来构建一个网格。然后利用matlab中的meshgrid函数将这两个数组转成X、Y两个二维矩阵。接着,我们定义了一个Z矩阵,用来表示sin函数和cos函数的运算结果,并传递这个矩阵到surf函数作为参数。最终我们可以在画布上看到一个三维表面的图形。 总之,通过使用Matlab中强大的绘图功能,我们可以实现从二维矩阵到三维图形的转化。这使我们能够更好地展示高维数据,从而更深刻地理解大型数据集的结构和关联。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值