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])
相关推荐
材料苦逼不会梦到计算机白富美11 分钟前
线性DP 区间DP C++
开发语言·c++·动态规划
java小吕布12 分钟前
Java Lambda表达式详解:函数式编程的简洁之道
java·开发语言
sukalot16 分钟前
windows C#-查询表达式基础(一)
开发语言·c#
一二小选手36 分钟前
【Java Web】分页查询
java·开发语言
大G哥36 分钟前
python 数据类型----可变数据类型
linux·服务器·开发语言·前端·python
Code成立1 小时前
《Java核心技术 卷I》用户图形界面鼠标事件
java·开发语言·计算机外设
Xiao Fei Xiangζั͡ޓއއ1 小时前
一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
c语言·开发语言·笔记·程序人生·面试·蓝桥杯·学习方法
记录无知岁月1 小时前
【MATLAB】目标检测初探
开发语言·yolo·目标检测·matlab·yolov3·yolov2
远望清一色1 小时前
基于MATLAB身份证号码识别
开发语言·图像处理·算法·matlab
NMBG222 小时前
[JAVAEE] 面试题(四) - 多线程下使用ArrayList涉及到的线程安全问题及解决
java·开发语言·面试·java-ee·intellij-idea