【台大郭彦甫】Matlab入门教程超详细学习笔记五:初阶绘图(附PPT链接)
初阶绘图
- 前言
- 一、基础绘图
- 1.plot() 绘制二维线图
- 2.legend()添加图例
- 3.title()和*label()添加标题与坐标轴
- 4.text()和annotation()增加注解
- 二、更改图像属性
- 1.获取图像的相关 handle
- 2.设置数轴的字体与刻度
- 3.更改线条属性
- 4.描点属性
- 5.多图
- 6.图像个性化操作
- 7.保存图像
前言
【台大郭彦甫】PPT链接:https://pan.baidu.com/s/1VXdy3HCBPexMK0csyehiZA 提取码:2io1
matlab官方帮助文档:https://ww2.mathworks.cn/help/
一、基础绘图
1.plot() 绘制二维线图
plot()
plot(x,y)
:如果 X 和 Y 都是向量,则它们的长度必须相同,plot 函数绘制 Y 对 X 的图;plot(y)
:横坐标为1.2.3…
plot(cos(0:pi/20:2*pi))
plot(X,Y,LineSpec)
设置线型、标记符号和颜色。例如'--or'
是带有圆形标记的红色虚线。
- hold 保留当前坐标区中的绘图
hold on保留;hold off 关闭此功能
eg.
hold on
plot(cos(0:pi/20:2*pi));
plot(sin(0:pi/20:2*pi));
hold off
2.legend()添加图例
eg.
x=0:0.5:4*pi;
y=sin(x);
h=cos(x);
w=1./(1+exp(-x));
g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-')
- legend()
参数内容与画图时 plot() 的参数内容一一对应
legend('sin(x)','cos(x)','Sigmoid','Gaussfunction');
3.title()和*label()添加标题与坐标轴
- title() 添加标题
- xlabel()、ylabel()、zlabel()为 x y z 轴添加题注;
\pi
=Πe^{-x}
eg.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = exp(-x);
plot(x, y1, '--*', x, y2, ':o');
xlabel('t = 0 to 2\pi');
ylabel('values of sin(t) and e^{-x}');
title('Function Plots of sin(t) and e^{-x}');
legend('sin(t)','e^{-x}');
4.text()和annotation()增加注解
line绘制基本线条. 在课件的这段代码中,line() 的第一个参数是 x 坐标,第二个参数是 y 坐标. 按照这两个向量连线画图;其实效果与plot差不多,基本的使用也与plot一样
text() 向数据点添加文本说明
text(x,y,txt) 前两个参数是说明在图中的起始位置annotation(lineType, x, y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释
将lineType
指定为 line(线条)、arrow(箭头) 或 doublearrow(双向箭头).
将x
和y
分别指定为 [x_begin, x_end] 和 [y_begin, y_end] 形式的二元素向量.
eg.
x = linspace(0,3);
y = x.^2.*sin(x);
plot(x,y);
line([2,2],[0,2^2*sin(2)]);
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';
text(0.25,2.5,str,'Interpreter','latex');
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);
- text()中第3个参数是 latex 语句字符串,后两个是使用 latex 语法添加说明时的固有格式。
练习
linspace
是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。若缺省N,默认点数为100。
t = linspace(1,2);
f = t.^2;
g = sin(2*pi*t);
p = plot(t,f,'b',t,g,'ro');
xlabel('Time(ms)');
ylabel('f(t)');
title('Mini Assignment #1');
legend({'t^{2}' ,'sin(2\pi t)'},'location','best');
二、更改图像属性
- Tick为坐标轴的标识间隔的小线段
先认识图像: - 绘图物件有:Figure Axes Line 三个 Object
eg.
x = linspace(0, 2*pi, 1000);y = sin(x);
plot(x,y);set(gcf, 'Color', [1 1 1]);
- 可以通过”编辑-图窗属性“查看属性名称、属性值等
1.获取图像的相关 handle
- handle即id number
h = plot(x,y)
- 上述代码为画出图形,并把图形 Line 的 handle赋值为h (类似于file id),以后便可以通过 h 来改变 Line 的一些属性; gcf、gca为Figure(图像)和Axes(数轴)固定的id
eg.
x = linspace(0, 2*pi, 1000);
y = sin(x);
h = plot(x,y);
get(h)
get(gca)
- 上述代码使用
get(h)
返回sin函数曲线的各属性值;get(gca)
返回坐标轴的各属性值
2.设置数轴的字体与刻度
- set()设置图形对象属性;
eg.设置刻度范围
set(gca,'XLim', [0, 2*pi]);
set(gca,'YLim', [-1.2, 1.2]);
- xlim()设置或查询 x 坐标轴范围,可以达到上面代码同样的效果。
xlim([0, 2*pi]);
ylim([-1.2, 1.2]);
eg.设置字体
set(gca,'FontSize', 25);
eg.设置坐标轴刻度及刻度标签
XTick为x轴的小竖线;XTickLabel为x轴竖线下的数值
set(gca,'XTick', 0:pi/2:2*pi);
set(gca,'XTickLabel', 0:90:360);
想要数轴上显示Π标志,课程中使用如下方法:
但提到的 Symbol 字体,现有的matlab不再支持。因此换为如下:
set(gca,'XTick', 0:pi/2:2*pi);
set(gca,'XTickLabel', {'0','\pi/2','\pi','3\pi/2','2\pi'});
3.更改线条属性
- 设置线条的格式、宽度、颜色
set(h,'LineStyle','-.','LineWidth',7.0,'Color','g');
也可以在画图的时候直接设置,如下:
plot(x,y,'-.g','LineWidth',7.0);
delete(h)将画好的图形清除;
delete(h);
- 使用圆点法画图
x = linspace(-2*pi,2*pi);y1 = sin(x);y2 = cos(x);p = plot(x,y1,x,y2);
更改属性
p(1).LineWidth = 2;
p(2).Marker = '*';
4.描点属性
练习
t = linspace(1,2);
f = t.^2;
g = sin(2*pi*t);
p = plot(t,f,'b',t,g,'ro');
legend({'t^{2}','sin(2\pi t)','location','best'});
title('Mini Assingment #1');
xlabel('Time(ms)');
ylabel('f(t)');
p(1).Color='k';
p(1).LineWidth=3;
p(2).MarkerEdgeColor='m';
p(2).MarkerFaceColor='#7E2F8E';
p(2).MarkerSize=4;
g=gca;
g.FontSize=15;
5.多图
- 多个窗口多个图像
- figure创建两个视窗
eg.
x = -10:0.1:10;
y1 = x.^2-8;
y2 = exp(x);
figure,plot(x,y1);
figure,plot(x,y2);
- 需要注意的是:再画完多图后,调用
gcf/gca
操作时,只作用在最新窗口的图像上,如上代码为Figure2是最新窗口。
- 一个窗口多个图像
subplot(m,n,1)表示m行n列并从1开始指定坐标区
eg.连接3、4两个位置画一个长图:
subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')
6.图像个性化操作
axis normal
:自动调整轴的纵横比和数据单元的相对缩放比例
axis square
:使当前区域为正方形
axis equal
:设置纵横比,使各个方向上的数据单位相同
axis equal tight
:将轴限制设置为数据范围
eg.
t = 0:0.1:2*pi;
x = 3*cos(t);
y = sin(t);
subplot(2,2,1);plot(x,y);axis normal
subplot(2,2,2);plot(x,y);axis square
subplot(2,2,3);plot(x,y);axis equal
subplot(2,2,4);plot(x,y);axis equal tight
- grid on /off显示或隐藏坐标区网格线
- box on /off显示或隐藏坐标区轮廓
- axis on /off显示或隐藏坐标区的线条和背景
eg.上面案例中最后一个关掉坐标轴及背景
axis off
7.保存图像
- saveas(fig,filename)使用指定的文件格式创建文件。
- 如果需要高解析度的图片,使用print()函数。
eg.
x = [2 4 7 2 4 5 2 5 1 4];
bar(x);
saveas(gcf,'Barchart.png')
【台大郭彦甫】Matlab入门教程超详细学习笔记五:初阶绘图(附PPT链接)相关推荐
- 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)
Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...
- 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)
数值微积分 前言 一.多项式微积分 1. 多项式计算 2. 多项式微分 3. 多项式积分 二.数值微积分 1. 数值微分法 2. 高阶微分法 3. 数值积分法 三.回顾Function Handles ...
- 【台大郭彦甫】Matlab入门教程超详细学习笔记六:高阶绘图(附PPT链接)
高阶绘图 前言 一.进阶二维绘图 1. 对数图 2.一图双y轴 3. 直方图 4. 条形图 5. 饼状图 6. 极坐标图 7. 阶梯图与取样图 8. 箱线图以及误差线图 9. 填充图 二.配色 1.R ...
- 【台大郭彦甫】Matlab入门教程超详细学习笔记四:数据类型与文件读写(附PPT链接)
变量类型与文件读写 前言 一.变量类型 1.numeric(数值类型) 2.char(字符类型) 3.string(字符串类型) 4.structure(结构体) 5.cell(元胞数组) 5.高维数 ...
- 台大郭彦甫-Matlab软件学习课堂exercise示例(第二讲)
台大郭彦甫-Matlab软件学习课堂exercise示例 (仅供参考) 第二讲 基本操作与矩阵输入 (P6 exercise) >> cos(((1+2+3+4)^3/5)^(1/2))a ...
- Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
所有示例使用的数据表均为Oracle提供的SQL基础数据表(t_employees.sql dept.sql emp.sql salgrade.sql) 熟练掌握多多练习即可达到完成后端开发所需具备的 ...
- 陈宝林《最优化理论与算法》超详细学习笔记 (七)————第五章 运输问题
陈宝林<最优化理论与算法>超详细学习笔记 (七)----第五章 运输问题 第1节 运输问题的数学模型 第2节 表上作业法 2.1 确定初始基可行解 2.2 最优解的判别 2.3 改进的方法 ...
- 陈宝林《最优化理论与算法》超详细学习笔记 (二)————补充知识(凸集) 第二章 线性规划的基本性质
陈宝林<最优化理论与算法>超详细学习笔记 (二)----补充知识 凸集 & 第二章 线性规划的基本性质 补充知识 凸集 方向与极方向 表示定理 择一定理 第一章 线性规划的基本性质 ...
- 陈宝林《最优化理论与算法》超详细学习笔记 (八)————最优性条件
陈宝林<最优化理论与算法>超详细学习笔记 (八)----最优性条件 无约束问题的极值条件 必要条件 二阶充分条件 充要条件 约束极值问题的最优性条件 不等式约束的一阶最优性条件 无约束问题 ...
最新文章
- 超级队长VR线下体验店落地上海,让娱乐突破想象
- python爬虫怎么做毕业设计_python语言爬虫做成毕业设计的话,怎样答辩演示,或者怎样把爬虫复杂化?...
- 接口测试用例模板_ITest:京东数科接口自动化测试实践
- CenterOS x64安装serv-U
- 前端学习(224):iconfont矢量库
- ajax 传字符串到后台,JSON.stringify()将JSON对象转换为字符串通过Ajax传入到后台处理...
- 建立自己的唱机前置放大器
- pycharm查看关键词的方法
- Java快逸报表展现demo,快逸报表展示图片—来自数据库中的图片
- php自动发卡程序8.0_API支付代理版自动发卡平台源码 v4.5.8
- 计算机视觉——Harris角点检测(课堂实验)
- python 布尔值取反_如何在Python中获得布尔值的相反(否定)?
- jquery 抓取微博_使用jQuery和RegexJavaScript进行客户端网络抓取
- mysql pdo 端口_pdo连接mysql
- SqlDbx连接Mysql中文乱码
- 分享一下自己存的网站
- win10用html文件做壁纸,利用win10自带工具制作动态壁纸的简单方法
- For循环—函数初步概念
- Windows Server 2008 R2中关闭“IE增强的安全配置”
- python逐行写入文件_Python文件逐行写入