河南省建设工程造价协会网站,微网站开发流程图,百度推广的四种收费形式,常用网站开发语言目录
今天目标#xff1a;
画一个图像并且给图像加上标题
子图绘制
一些小知识
grid 设置框线
box 设置边框
polar() 绘图
今天小结 今天目标#xff1a; 画一个图像并且给图像加上标题
首先我们画一张很简单的图形#xff0c;比如就画一个y cos x 的图像吧。 代码…目录
今天目标
画一个图像并且给图像加上标题
子图绘制
一些小知识
grid 设置框线
box 设置边框
polar() 绘图
今天小结 今天目标 画一个图像并且给图像加上标题
首先我们画一张很简单的图形比如就画一个y cos x 的图像吧。 代码如下
%% 给图形加上标题这个我记得前面提过syms x; % 声明一个变量xx 0:0.1:2*pi; % x的取值范围从0-2*pi以0.1为分割取值y cos(x); % 函数figure; % 打开绘图窗口plot(y); % 画出y如果你想更改曲线形状可以参考第10讲比如% plot(y, o--c)
如果我们想给这个图形加上一个标题我们只需要使用 title() 即可 代码如下
%% 给图形加上标题这个我记得前面提过syms x; % 声明一个变量xx 0:0.1:2*pi; % x的取值范围从0-2*pi以0.1为分割取值y cos(x); % 函数figure; % 打开绘图窗口plot(y); % 画出y如果你想更改曲线形状可以参考第10讲比如% plot(y, o--c)title(余弦函数);
猛一看这个代码很平常好像平平无奇的但是请你仔细看plot的部分
有些同学可能依稀记得我使用过 ploy(x, y) 去画图可是今天我仅仅使用了 plot(y) 就把图画了出来大家可以参考前面第十讲 这是为什么呢如果大家都能认真想想再相信大家都能发现问题所在。
额外知识这个手型工具可以拖动图像坐标轴也会变化 上面的图像有一个很大的问题请看图像的横坐标栏如下图后一个图是使用手型工具拖动第一个点到靠近横坐标轴时的图片 或者我们也可以使用这个工具学名是数据光标来查看这个点的值 咦~不对啊为什么坐标轴是1-63呢我的x的取值范围不是0-2*pi吗
咦~你怎么知道是63而不是64呢?
我们看这个坐标轴60我们能想到什么
没错我们的 x 是这样定义的x 0:0.1:2*pi 也就是说x 看起来是连续的实际上是间断的这个前面也讲过咯其实 x 的值是一个矩阵里面存储的分别是0 0.1 0.2 ...一直到2*pi这个数。而 2*pi 大概是6.28多一点点所以最多到6.2就停止了故 x 的值其实是这63个数据而 y cos x实质上是相对于每一个 x 的值计算cos的值于是乎当x 0时y cosx y 1以此类推我们可以在工作区看到x y的真实的值 如此我们就可以知道 plot 的作用了。
plot 画图如果只有一个参数那么横坐标就是1 2 3 .。。。。以此类推的参数作为当横坐标作为1 2 3 .。。时的值对于 plot(y)我们就看到当横坐标是1 时纵坐标取1y 1当横坐标是2时纵坐标取0.9950y 0.9950。。。。以此类推。
而如果有两个参数时第一个参数是横坐标第二个是纵坐标两个参数中的数值的量要相同这样就能对应画图比如我们使用plot(x,y)和plot(y, x) 代码如下
%% 给图形加上标题这个我记得前面提过syms x; % 声明一个变量xx 0:0.1:2*pi; % x的取值范围从0-2*pi以0.1为分割取值y cos(x); % 函数figure; % 打开绘图窗口plot(x, y); % 画出y如果你想更改曲线形状可以参考第九讲比如% plot(y, o--c)title(plot(x, y));figureplot(y, x);title(plot(y, x));
额外思考如果plot的参数是三个呢
如果你这个时候真的写了下面的代码
%% plot里面三个参数的情况clear all;syms x;x 0:0.1:2*pi;y sin(x);z cos(x);figure;plot(x, y, z);
那么不出意外你的matlab应该会闪退了。
还记得我们上一讲说plot() 是可以设置函数曲线的点形状、曲线样式以及颜色的其实这个第三个参数需要是字符串(比如x--c) 代码如下
%% plot里面三个参数的情况clear all;syms x;x 0:0.1:2*pi;y sin(x);figure;plot(x, y, x--c);title(plot里面三个参数的情况);
第三个参数的形状设置上一讲说过我这里再把那个图片复制过来了不要忘记这三个符号不区分前后顺序。还有propertyname参数其实没啥用这里提一下大家知道就行了我们平常画图下面这个表应该够用了所以这里就不讲了。 如此相信大家能很深刻的理解plot()的作用了。 子图绘制
使用subplot() 可以将一个figure分为多个区块这是个很简单的函数看代码
%% 子图绘制x 0:0.1:2*pi; % 设置变量范围y sin(x); % 第一个函数z cos(x); % 第二个函数figure; % 创建一个图像画板subplot(3, 2, 1); % 给图像画板分区为3行2列选中第一个区域plot(x, y); % 在这个区域画图title(y sin x); % 这个区域的名字subplot(3, 2, 6); % 给绘图花瓣分区为3行2列选中第六个区域plot(x, z); % 绘制z cosxtitle(z cos x); % 命名
最后出现的图像是这样的 额外的思考如果我想画两张图且他们的分区方式不一样的我们是否可以画不同图时划分区域形状不同选中不重叠的部分画图呢让我们试一试吧
%% 子图绘制x 0:0.1:2*pi; % 设置变量范围y sin(x); % 第一个函数z cos(x); % 第二个函数figure; % 创建一个图像画板subplot(2, 1, 1); % 给图像画板分区为2行1列选中第一个区域其实就是第一行plot(x, y); % 在这个区域画图title(y sin x); % 这个区域的名字subplot(2, 3, 6); % 给绘图花瓣分区为2行3列选中第六个区域plot(x, z); % 绘制z cosxtitle(z cos x); % 命名
下面是输出的结果看来是符合我们的预期的 所以我们划分区域时可以根据这个图像的需求灵活划分这个subplot只是逻辑上的划分区域并不是真的划分了区域 一些小知识 grid 设置框线
grid on 开启框线这个默认是关闭的( grid off ) 代码如下
%% 子图绘制x 0:0.1:2*pi; % 设置变量范围y sin(x); % 第一个函数z cos(x); % 第二个函数figure; % 创建一个图像画板subplot(2, 1, 1); % 给图像画板分区为3行2列选中第一个区域plot(x, y); % 在这个区域画图title(y sin x); % 这个区域的名字grid on; % 给这个区域设置框线subplot(2, 3, 6); % 给绘图花瓣分区为2行3列选中第六个区域plot(x, z); % 绘制z cosxtitle(z cos x); % 命名 box 设置边框
box off 关闭图像的边框这个默认是打开的box on,其实我感觉没啥用主要是为了临界处方便观察吧 代码就如下
%% 子图绘制x 0:0.1:2*pi; % 设置变量范围y sin(x); % 第一个函数z cos(x); % 第二个函数figure; % 创建一个图像画板subplot(2, 1, 1); % 给图像画板分区为3行2列选中第一个区域plot(x, y); % 在这个区域画图title(y sin x); % 这个区域的名字box off; % 给这个区域设置边框关闭subplot(2, 3, 6); % 给绘图花瓣分区为2行3列选中第六个区域plot(x, z); % 绘制z cosxtitle(z cos x); % 命名 polar() 绘图
有些图像只有极坐标形式很难解出或者没有直角坐标形式所以需要用到极坐标系极坐标画图参数和Plot()几乎是一样的看一个例子吧 代码如下
%% polar()x 0:0.1:2*pi; % 设置变量范围y cos(x).^2sin(x).^2;% 第一个函数在matlab中^ 表示乘方不是异或。% 但是matlab中都是矩阵所以需要在运算符前加一个 . 表示矩阵中所有元素都平方% 我们都知道z 就是圆的极坐标表示形式了。figure; % 创建一个图像画板subplot(2, 1, 1); % 给绘图花瓣分区为2行1列选中第一个区域polar(x, y); % 绘制y cosxtitle(y cos(x)^2sin(x)^2); % 命名% 分区是为了告诉大家polar()也能在分区中操作 今天小结
今天学习了下面的内容
plot()画图和plot()到底怎么工作的matlab中一些小工具如数据光标的使用画极坐标画子图一些小函数