创建自己的面积图

下面创建一个最简单的面积图,它要求输入数据只能是顶点位置的横坐标矢量和纵坐标矢量,不能是矩阵。但是它可以显示顶点坐标。

首先创建一个M文件myarea.m,代码如下所示:

code.matlab
	function myarea(x,y,label)
	  len=length(x);
	  miny=min(y);
	  verts(1,1)=x(1);
	  verts(1,2)=miny-1;
	  for i=1:len
	      verts(i+1,1)=x(i);
	      verts(i+1,2)=y(i);
	  end
	  verts(len+2,1)=x(len);
	  verts(len+2,2)=miny-1;
	  faces=[1:len+2];
	  patch('Faces',faces,'Vertices',verts,'FaceColor','g');
	  if label==1
	      for i=1:len
	          text(x(i),y(i),['(',num2str(x(i)),',',num2str(y(i)),')']);
	      end
	  end
	  axis auto

然后在命令窗口中键入下面的命令行,绘制一个没有顶点标注的面积图和一个有顶点标注的面积图。

code.matlab
>> x=[1 2 3 4];
>> y=[10 5 20 13];
>> myarea(x,y,0);
>> figure;myarea(x,y,1);

生成图7-2和图7-3。

Document Image Document Image
\[\]

图7-2 创建面积图 图7-3 给面积图添加标注