离散数据绘图
假如我们现在有五个学生的成绩,我们想要把他们的成绩跟名字一一对应的画在图上,必要的时候可以用折线连接,这个时候我们就要了解以下函数:
xtick
xticklabel
gca
set
axis
其中gca
通俗的理解是返回当前函数图像的性质,比如长宽高,分辨率,坐标轴分度值等一系列图像属性
然后可以通过set
命令逐一修改属性,就好似C
语言的结构体一样,这样的解释可以说非常通俗易懂了。
假如我们有以下五个人的成绩:
A:50
B:98
C:75
D:80
E:98
我们要用折线图画出来,并且x
坐标轴的标签不是普通的数字1,2,3....
等,而是与每个人的名字相对应。
首先我们创建一个含有五个元素的数组:
>> x = [1:5];
然后我们创建一个成绩数组:
>> y = [50 98 75 80 98];
接下来我们先把这些成绩对应的点绘制出来(注意,不是折线,这个马上讲),可以使用以下命令:
>> plot(x,y,'o')
图像:
其中第三个参数'o'
表示我们用圆圈来表示数据,当然,我们也可以使用其它的形状:
s
–方块d
–菱形p
–五角星o
–圆圈x
–叉号.
–点号
还有一个容易出错的地方是,我们绘制的只是一些点,如果要将他们连接起来,我们可以使用下面的命令:
>> plot(x,y,'o',x,y)
表示我们表示出这些点后,再用折线将它们连起来,图像如下:
MATLAB
好像默认的颜色是红色,我们也可以在第三个参数那个地方更改我们喜欢的颜色和线型,这里我们就随便举一个例子:
>> plot(x,y,'or',x,y,'--')
这个表示:
- 第一个
x,y
先绘制散点,并用红色的圆圈表示出来 - 第二个
x,y
绘制直线,线型是虚线
图像:
我们要注意的是,参数的顺序对图像有一定的影响,我刚开始绘图的时候,想要把所有关于线型,颜色的参数放在一个位置,但后来发现这样的顺序会对图像造成一定的影响,就比如:
>> plot(x,y,'or--',x,y)
我们的本意是先描出这些散点,用红色的圆圈表示,然后用虚线连接这些点,但画出来的图像却如下图:
结果却是用实线绘制,这与我们的预期不符,后来经过尝试终于理解了:
我们是根据零散的点绘制的图形,x
和y
的关系是一一对应的,所以我们要先把这些点给画出来,画出来这些点我们需要一些标记,比如圆圈,菱形,点等等,我们可以为其添加颜色,但唯独不能选择线型,比如虚线实线等,因为这些只是独立的点,我们还没有把它们连接起来,所以这里线型这个命令MATLAB
会忽视掉;等到我们这些点绘制出来后
我们就要把它们连接起来了,这个时候我们就可以选择线型参数了。
就比如:
>> plot(x,y,'.g',x,y,'k--')
图像:
我们用绿色的点,和黑色的虚线连接
所以我们需要注意的是,离散点绘图我们要在相应位置填上相应参数,否者MATLAB会自动忽略。
好像跑题了,现在我们回到问题中去,绘制出学生成绩的图像:
>> x = [1:5];
>> y = [50 98 75 80 98];
>> plot(x,y,'or',x,y,'--')
>> set(gca,'xticklabel',['A';'B';'C';'D';'E']);
>> set(gca,'xtick',[1:5]);
>> axis([1 5 0 100])
生成:
>> set(gca,'xticklabel',['A';'B';'C';'D';'E']);
>> set(gca,'xtick',[1:5]);
其中这两句相当于将1~5
的坐标值替换成学生的姓名,gca
返回当前图像的属性。
条形图
条形图的命令非常简单,我们直接使用bar(x,y)
命令就可以绘制:
>> bar(x,y)
>> xlabel('学生')
>> ylabel('分数')
>> title('期末考试')
针状图
绘制离散数据的另一种方式是针状图,我们看一个函数:
我们假定这个函数是某根弹簧在某个力下随时间的响应。
其中
现在我们绘出200之内的图像,首先我们定义区间:
>> t = [0:0.1:200];
接下来定义函数:
>> f = exp(-0.01*t).*sin(t/4);
画图:
>> plot(t,f),xlabel('时间(秒)'),ylabel('弹簧响应')
图像:
以上图每隔0.1取一次数据,假如我们要从离散数据绘图,我们每隔5采一次样
>> t = [0:5:200];
>> f = exp(-0.01*t).*sin(t/4);
>> plot(t,f),xlabel('时间(秒)'),ylabel('弹簧响应')
图像:
我们得到的图像有些粗糙,在这种情况下,工程师们喜欢把它绘制成针头图,只需使用命令stem(x,y)
即可:
plot的许多命令也能用到stem上,比如点的颜色,形状,线的颜色,形状:
s
–方块d
–菱形p
–五角星o
–圆圈x
–叉号.
–点号
我们也可以使用fill
命令填充形状
代码:
>> stem(t,f,'p','fill'),xlabel('时间(秒)'),ylabel('弹簧响应')
>> stem(t,f,'dg--','fill'),xlabel('时间(秒)'),ylabel('弹簧响应')
最后
以上就是可耐冥王星最近收集整理的关于MATLAB图形绘制--离散数据绘图离散数据绘图条形图针状图的全部内容,更多相关MATLAB图形绘制--离散数据绘图离散数据绘图条形图针状图内容请搜索靠谱客的其他文章。
发表评论 取消回复