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])
相关推荐
Barkamin33 分钟前
队列的实现(Java)
java·开发语言
hixiong1231 小时前
C# OpenvinoSharp使用RAD进行缺陷检测
开发语言·人工智能·c#·openvino
小浪花a1 小时前
计算机二级python-jieba库
开发语言·python
骇客野人1 小时前
自己手搓磁盘清理工具(JAVA版)
java·开发语言
清风徐来QCQ1 小时前
Java笔试总结一
java·开发语言
lly2024061 小时前
《jEasyUI 转换 HTML 表格为数据网格》
开发语言
萧曵 丶1 小时前
LangChain Model IO 提示词模版(Python版)
开发语言·python·langchain
Elastic 中国社区官方博客1 小时前
Elastic 为什么捐赠其 OpenTelemetry PHP 发行版
大数据·开发语言·elasticsearch·搜索引擎·信息可视化·全文检索·php
10Eugene2 小时前
C++/Qt自制八股文
java·开发语言·c++
冰暮流星2 小时前
javascript如何实现删除数组里面的重复元素
开发语言·前端·javascript