Matlab学习(台大郭彦甫)第5节-初阶绘图

  • 第5节 初阶绘图
    • 5.1 基础绘图
      • 5.1.1 plot()函数
      • 5.1.2 hold on/off
      • 5.1.3 Plot Style(绘图风格)
      • 5.1.4 legend()添加图例
      • 5.1.5 title() and label()添加图名和坐标轴名
      • 5.1.6 text() and annotation()(输入文本 和 增加箭头)
      • 5.1.7 练习1
    • 5.2 Graphical object properties(绘图物件特性)
      • 5.2.1 Graphical Object(图形对象)
      • 5.2.2 Fetch or modify the object's properties(获取或修改对象的属性)
    • 5.3 Marker Specification(标记规范)
      • 5.3.1 Face and edge colors of the markder(标记器中面和边的颜色)
      • 5.3.2 练习2
    • 5.4 Multiple Figures(多图形)
    • 5.5 Several Plots in One Figure(一个图中包含几个图形)
      • 5.6 Control of Grid,Box,and Axis(控制网格、框和轴)
      • 5.7 Saving Figures into Files(将图形保存到文件中)

第5节 初阶绘图

5.1 基础绘图

5.1.1 plot()函数

  • plot(x,y)plots each
    vector pairs(x,y),即向量对
  • plot(y)plots each vector pairs(x,y),
    where x = [1…n],n = length(y)

示例代码:

clear;
clc;
x=1:0.2:10;
y=x.^2;
plot(x,y);


示例代码:

plot(cos(0:pi/20:2*pi));

5.1.2 hold on/off

  • Use ‘ hold on ’ to have both plots in one figure(使用“hold on”将两个图放在一个图形中)

示例代码:

hold on
plot(cos(0:pi/20:2*pi));
plot(sin(0:pi/20:2*pi));
hold off

结果:

5.1.3 Plot Style(绘图风格)

  • plot(x,y,‘str’) plots each vector pairs (x,y)
    using the format defined in str (check this)

    示例代码:
hold on
plot(cos(0:pi/20:2*pi),'or--');%%'o'代表点形o,'r'代表颜色是红色red,'--'代表线形
plot(sin(0:pi/20:2*pi),'xb-.');%%'x'代表点形x,'b'代表颜色为蓝色blue,'-.'代表线形
hold off

5.1.4 legend()添加图例

  • Add legend to graph(向图表添加图例,即下图示例右上角部分)
  • Position adjustment(位置调整)

示例代码:

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('sin(x)','cos(x)','Sigmoid','Gauss function');


注意:右上角的图例其实是可以拖动的

5.1.5 title() and label()添加图名和坐标轴名

  • title()添加图名标题
  • xlabel()添加x轴的名字
  • ylabel()添加y轴的名字
  • zlabel()添加z轴的名字

示例代码:

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}');


注意

需要打‘\pi’才能显示π\piπ

需要打‘e^{-x}’才能显示e−xe^{-x}e−x

5.1.6 text() and annotation()(输入文本 和 增加箭头)

示例代码:

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]);

注意:

  • linspace(0,3)是指生成0到3之间100个等距的点。
  • line([2,2],[0,2^2sin(2)]),绘制一条从点(2,0)到点(2,2 ^2sin(2))的直线
  • text(0.25,2.5,str,‘Interpreter’,‘latex’),添加文本,文本的起点坐标为(0.25,2.5)

结果:

5.1.7 练习1


代码:

clear;
clc;
t=1:0.01:2;
f=t.*t;
g=sin(2*pi*t);
plot(t,f,'k',t,g,'or');
legend('t^{2}','sin(2\pit)');
title('Mini Assignment #1');
xlabel('Time (ms)');
ylabel('f(t)');

运行结果:

5.2 Graphical object properties(绘图物件特性)

5.2.1 Graphical Object(图形对象)

  • A figure is composed of many object(一个图形由许多对象组成)

    注意
  • gcf 返回当前Figure 对象的句柄值
  • gca 返回当前axes 对象的句柄值
  • gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。

示例代码:

x = linspace(0, 2*pi, 1000);
y = sin(x);
plot(x,y);
set(gcf, 'Color', [1 1 1]);

5.2.2 Fetch or modify the object’s properties(获取或修改对象的属性)

  • get()函数,用于获取对象属性;
  • set()函数,用于修改对象属性。

例子:

clear;
clc;
x = linspace(0, 2*pi, 1000);
y = sin(x);
h = plot(x,y,'b');


利用get()函数获取对象属性:

get(h);

获得曲线的属性

get(gca);

获取坐标轴的属性

set(gca,'XLim',[0,2*pi]);
set(gca,'YLim',[-1.2,1.2]);
% xlim([0,2*pi]);
% ylim([-1.2,1.2]);

将X轴坐标显示为0到2*pi;
Y轴坐标显示为-1.2到1.2

set(gca,'FontSize',25);

将坐标轴上的字体变为25号

set(gca,'XTick',0:pi/2:2*pi);%改变X轴的取值,使其与角度值有关(弧度制)
set(gca,'XTickLabel',0:90:360);;%将X轴刻度转换为角度
set(gca, 'XTickLabel', {'0', '\pi/2', '\pi', '3\pi/2', '2\pi'})%将X轴刻度变为文本显示

set(h,'LineStyle','-.','LineWidth',7.0,'Color','g');%或者plot(x,y'-.g','LineWidth',7.0);

将线条的风格变成‘-.'的形式,线的宽度变为7.0,线的颜色变为绿色

delete(h);

删除线条

5.3 Marker Specification(标记规范)

5.3.1 Face and edge colors of the markder(标记器中面和边的颜色)

clear;
clc;
x=rand(20,1);%生成20行1列的在0-1之间的随机数组
plot(x,'-md','LineWidth', 2, 'MarkerEdgeColor', 'k','MarkerFaceColor', 'g', 'MarkerSize', 10);
%表示画出来的图形,线条是实线,颜色是品红,点的形状为菱形;标记器的边缘颜色为黑色,标记器的内部颜色为绿色,标记器的大小为10
%-md,表示实线,品红,菱形
xlim([1, 20]);%x轴设置为1-20
set(gca, 'FontSize', 18);%坐标轴上的字号为18

结果图:

5.3.2 练习2


示例代码:

clear;
clc;
t=linspace(1,2,40);%在1到2之间,均匀生成40个点
f=t.^2;
g=sin(2*pi.*t);
h1=plot(t,f,'k','LineWidth',3);%画出f曲线,颜色为黑色'k',线的宽度为3
hold on;
h2=plot(t,g,'om','LineWidth',3,'MarkerFaceColor','m');
%画出g曲线,点的形状为圆圈'o',颜色为品红'm',线的宽度为3,标记器的内部颜色为品红'm'
set(gca,'YTick',-1:4);%将Y轴设置为-1到4
legend('t^{2}','sin(2\pit)');%设置图例
title('Mini Assignment #1');%设置图标题
xlabel('Time (ms)');%设置X轴标题
ylabel('f(t)');%设置y轴标题

5.4 Multiple Figures(多图形)

  • Create a figure window by calling figure(通过调用figure创建figure窗口)
clear;
clc;
x = -10:0.1:10;
y1 = x.^2 - 8;
y2 = exp(x);
plot(x,y1);
figure;
plot(x,y2);

运行结果:

5.5 Several Plots in One Figure(一个图中包含几个图形)

  • Several small plots ”in a figure“(用几个小图合成一个大图)
  • subplot()函数
clear;
clc;
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

5.6 Control of Grid,Box,and Axis(控制网格、框和轴)

5.7 Saving Figures into Files(将图形保存到文件中)

参考:请看大佬原文(戳这里)

Matlab学习(台大郭彦甫)第5节-初阶绘图相关推荐

  1. matlab求两向量夹角_MATLAB教程-台大郭彦甫-第十节,含练习答案

    10-数值微积分 一.Polynomial differentiation and integration(多项式微分与积分) (一)Differentiation(微分) 1.The derivat ...

  2. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)

    Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...

  3. 【台大郭彦甫】Matlab入门教程超详细学习笔记六:高阶绘图(附PPT链接)

    高阶绘图 前言 一.进阶二维绘图 1. 对数图 2.一图双y轴 3. 直方图 4. 条形图 5. 饼状图 6. 极坐标图 7. 阶梯图与取样图 8. 箱线图以及误差线图 9. 填充图 二.配色 1.R ...

  4. 【台大郭彦甫】Matlab入门教程超详细学习笔记四:数据类型与文件读写(附PPT链接)

    变量类型与文件读写 前言 一.变量类型 1.numeric(数值类型) 2.char(字符类型) 3.string(字符串类型) 4.structure(结构体) 5.cell(元胞数组) 5.高维数 ...

  5. 台大郭彦甫-Matlab软件学习课堂exercise示例(第二讲)

    台大郭彦甫-Matlab软件学习课堂exercise示例 (仅供参考) 第二讲 基本操作与矩阵输入 (P6 exercise) >> cos(((1+2+3+4)^3/5)^(1/2))a ...

  6. 【台大郭彦甫】Matlab入门教程超详细学习笔记七:数值微积分(附PPT链接)

    数值微积分 前言 一.多项式微积分 1. 多项式计算 2. 多项式微分 3. 多项式积分 二.数值微积分 1. 数值微分法 2. 高阶微分法 3. 数值积分法 三.回顾Function Handles ...

  7. 【台大郭彦甫】Matlab入门教程超详细学习笔记五:初阶绘图(附PPT链接)

    初阶绘图 前言 一.基础绘图 1.plot() 绘制二维线图 2.legend()添加图例 3.title()和*label()添加标题与坐标轴 4.text()和annotation()增加注解 二 ...

  8. Matlab笔记(台大郭彦甫14课)

    台大郭彦甫老师Matlab教程 Applications of Matlab in Engineering https://www.bilibili.com/video/BV1GJ41137UH?p= ...

  9. 台大郭彦甫教授Matlab讲解笔记(一)

    台大郭彦甫教授Matlab讲解笔记(一) Introduction 对于一个软件的学习,首先要认识它的界面,了解各个窗口.我用的是2015b版的MATLAB. 大致分为四个窗口. 当前文件夹:展示了电 ...

最新文章

  1. VMware View Composer 虚拟机映像管理
  2. html如何扩大div,HTML – 如何让绝对div适合父宽度/填充?
  3. 9岁印度女孩成为最年轻微软认证专家
  4. Windows服务器上怎样开放指定端口
  5. Bengio等人新作:基于双层规划的端到端分子构象生成框架
  6. BZOJ 2818 Gcd
  7. 【JS 逆向百例】网洛者反爬练习平台第二题:JJEncode 加密
  8. GCC: libgcc的用途以及交叉编译
  9. vue 多页面应用例子_【微服务】137:Vue之生命周期钩子
  10. IDEA→编码设置、JDK设置、快捷方式、运行项目、debug、关联git、关联maven、mybatis跳转plugin
  11. activity 变成后台进程后被杀死_Android开发后台服务
  12. 【环球产品探寻 4】Wolftech News拥有一流用户体验的媒体工作流系统 - 挪威
  13. 小知识--电脑的快捷键
  14. Excel 隔行插入行V2022.7(支持win11,支持Office 和WPS)
  15. ubuntu恢复被rm误删的数据及原理
  16. 那些中国式家庭的小烦恼,我看用AI来解决就“都挺好”
  17. Java框架之Struts2(六)
  18. ROS rosbridge
  19. C#截取picturebox的一部分图片
  20. 关于教育类网站的安全防护方案

热门文章

  1. matlab 信号生成,Matlab产生信号的方法
  2. MFC对话框中嵌入D3D
  3. 0基础学编程需要哪些基础?
  4. java数组列表和数组的区别_数组,集合,列表的使用与区别
  5. 介绍一个全局最优化的方法:随机游走算法(Random Walk)
  6. PCB设计——使用Altium Designer做PCB拼版文件技巧总结
  7. 卡特兰数 Catalan number
  8. 一台服务器支持多个域名和站点
  9. 【数据通信】具有路由 WSN 模拟器的随机方式移动(Matlab代码实现)
  10. Ajax入门介绍篇:Ajax开发基础