MATLAB绘制云图、等值线图
当我们有一堆离散点的数据,希望通过云图或等值线图的形式直观地体现数据的分布特征,而且我们需要绘制的区域有时是矩形的,有时是圆形的,或是其他形状,这里将介绍不同轮廓下云图的绘制。
在矩形区域绘制云图
- 01
假设给定一个矩形区域-1≤x≤1,-2≤y≤2. 并假定在该区域上有8个离散点,坐标为: x=[1,0.3,-0.5,0.7,0.9,-0.8,-0.2,0],y=[-0.3,0.3,-1.5,-1.2,1.8,0,1.1,0.6], 每个离散点上的参数值记为f=[5.7,4.3,7.5,9,2.4,5.6,7.6,4] 首先在matlab命令行窗口中输入离散点坐标及对应参数值(如图)
- 02
生成矩形云图区域的规则的插值点,例如将矩形区域-1≤x≤1,-2≤y≤2在x向20等分,在y向40等分,用X1,Y1来表示矩形区域新的插值点的坐标。这可以通过图中方式实现,或用linspace(x1,x2,N)命令实现,见图。这里X1和Y1都是行向量。
- 03
将原先离散点的数据按一定的数学方式插值到新的离散点X1,Y1,这里采用griddata命令,前面的x,y,f分别为原来离散点的坐标和相应的参数值,这里特别注意X1右上角有个转置的符号 ' ,这样才能直接由两个行向量形成一个坐标矩阵,如下图中的X和Y,X和Y均为21×41的矩阵。 图中Z则为插值得到的与X和Y坐标对应的参数值; 'v4'代表插值方法为matlab4样条函数内插,也可用'linear','cubic','nearest'等
- 04
用contourf命令绘制等值线图,见图中红色线框圈出的内容。命令中20表示云图中等值线数值分成的份数。 这样矩形区域云图(等值线图)就绘制成功,如图。
圆形区域绘制云图
- 01
对于同样的离散点的数据,若给定圆形区域:圆心为(0,0),半径为2的圆形区域,生成等值线图的关键步骤是生成圆形区域内的插值点坐标矩阵,如图中的X1和Y1,这里X1和Y1均为21×121的矩阵,而不是向量,作用如同上面第三步中的X和Y。
- 02
将原先离散点的数据按一定的数学方式插值到新的离散点X1,Y1。 Z=griddata(x,y,f,X1,Y1,'v4'); 这里与矩形区域云图绘制的最大区别是X1和Y1都是21×121的矩阵(如图),不是行向量,因此X1右上角不需要转置符号;此外,输出量只需插值得到的新的参数值矩阵Z。
- 03
用contourf命令绘制等值线图,命令中20表示云图中等值线数值分成的份数。 这样圆形区域云图(等值线图)就绘制成功,如图。