MATLAB基本绘图操作(二维和三维绘图)

MATLAB基本绘图操作

文章目录

1、二维平面绘图

1.1、线条(折线图)
matlab 复制代码
x=0:0.01:2*pi;   %从09开始,每次递增0.01,一直到2*pi结束
y = sin(x) ;
figure  %建立一个幕布
plot(x, y)  %绘制二维的平面图  %若(x,y ,'Linewidth',2)可变粗,后面的数字参数用来调整线条的粗细
%plot(x, y1,x,y2) %设置两个图在同一块幕布下
title('y = sin(x)')  %标题
xlabe1('x')   %x轴的标签
ylabe1('sin(x)')  %y轴的标签
xlim([0 2*pi])    %将绘图的x轴限制设置为介于0和2*pi之间
grid on  %添加网格
axis([0 20 -1.5 1.5])   %用来设置横纵坐标的范围,x:0~20  y:-1.5~1.5
  • 执行结果:
  • 设置颜色,线条风格等:
matlab 复制代码
x = 0:0.01:20;
y1 = 200*exp (-0.05*x).*sin(x);
y2 = 0.8*exp (-0.5*x).*sin(10*x);
figure
[AX, H1, H2] = plotyy(x, y1,x, y2, 'plot'); %plotyy是公用一个坐标系,并在y上面有不同的取值,两条线
set(get(AX(1),'Ylabel'), 'String', 'Slow Decay')
set(get(AX(2),'Ylabel'), 'String','Fast Decay')
xlabel('Time (\musec)')
title(' Multiple Decay Rates')
set (H1, 'LineStyle','--')  %设置H1线的风格设置为虚线
set (H2, 'LineStyle',':')   %冒号线,更多样式请参考下面的表

运行结果:

1.2、条形图

bar函数创建垂直条形图

barh函数用来创建水平条形图

matlab 复制代码
t = -3:0.5:3 %范围是-3~3,步长为0.5(可以理解为条形的宽度)
p = exp(-t.*t)  %见注释①
subplot(2,1,1)  %分割幕布,取第一块
bar(t,p)  %竖轴条形图
subplot(2,1,2)  %分割幕布,取第二块
barh(t,p) %横轴条形图

注释①:

1.3、极坐标图

polarplot 函数用来绘制极坐标图

matlab 复制代码
theta = 0:0.01:2*pi   %pi就是圆周率π
radi = abs(sin(2*theta).*cos(2*theta));  % abs函数求得是绝对值
polarplot(theta,radi)   %括号内是圆弧的半径
1.4、散点图

scatter函数用来绘制×和y值的散点图

matlab 复制代码
Height = randn(1000,1);%生成1000行1列的均匀分布的伪随机数,并且符合正态分布
Weight = randn(1000,1);
scatter(Height,Weight) 
xlabel('Height')
ylabel('Weight')

2、三维立体绘图

2.1、三维曲面图

surf函数可用来做三维曲面图。一般是展示函数z=z(x,y)的图像首先需要用meshgrid创建好空间上(x,y)点。

matlab 复制代码
[×,Y] = meshgrid(-2:0.2:2);  %在平面布置函数,在-2~2的平面上,每隔0.2布置一个点
%Z =×.^2 + Y.^2
z = x.*exp( -x.^2-Y.^2);  %关于z的一个关系式:e的-x的平方-y的平方的次方,见注释②
surf(×,Y,Z);
%colormap hsv
%colormap设置颜色,可跟winter、summer等,hsv
%colorbar %傍边展示不同颜色不同的数值区间范围

注释②:

2.2、三维曲线图(点图)
matlab 复制代码
t = 0: pi/50:10*pi ;
plot3(sin(t),cos(t),t)  %plot3三维绘图的标志,参数分别是x,y,z
xlabel('sin(t)') %x轴的标签
ylabel('cos(t)')
zlabel('t')
%hold on  %中使用"保持"命令来保留当前绘图,同时向同一图形添加新的绘图。这允许在同一图形上显示多个绘图。
%hold off  %"暂停"命令用于关闭暂停功能,这意味着后续绘图将替换图中的现有绘图,而不是添加到图中。
grid on  %添加网格线
axis square %形成正方形图

执行结果:

3、图片分区(子图)

matlab 复制代码
x=linspace(0,2*pi,60);
subplot(2,2,1)  %将图形窗口分为2行2列,并且取到第1块
plot(x, sin(x)-1);
title('sin(x)-1'); axis([0,2*pi,-2,0])
subplot(2,1,2)
plot(x, cos(x)+1);
title('cos(x)+1'); axis([0,2*pi,0,2])
subplot(4,4,3)
plot(x, tan(x));
title('tan(x)'); axis([0,2*pi,-40,40])
subplot(4,4,8)   %将图形窗口分为4行4列,并且取到第8块
plot(x, cot(x));
title('cot(x)'); 
axis([0,2*pi, -35,35])
相关推荐
SoFlu软件机器人1 分钟前
高并发场景下的 Java 性能优化
java·开发语言·性能优化
ll7788112 分钟前
C++学习之路,从0到精通的征途:string类的模拟实现
开发语言·数据结构·c++·学习·算法·职场和发展
green5+120 分钟前
卡码网55:右旋字符串
java·开发语言
壮Sir不壮24 分钟前
图论之并查集——含例题
开发语言·golang·图论
辰阳星宇25 分钟前
213、【图论】有向图的完全联通(Python)
开发语言·python·图论
huangsu_12328 分钟前
java+postgresql+swagger-单表批量和循环insert、delete操作(八)
java·开发语言·数据库·postgresql
oscar9991 小时前
Python 基础语法汇总
开发语言·python
嵌入式-老费1 小时前
Linux上位机开发实践(关于Qt的移植)
开发语言·qt
小破农1 小时前
手撕 STL 之—— list
开发语言·c++
程序员老茶1 小时前
C++:STL的常用容器(string/vector/deque/stack/queue/list/set/multiset/map/multimap)
开发语言·c++·list