R语言中有一个根据实值矩阵绘制色块图的程序(用于绘制相关系数矩阵图),可以用丰富的颜色和形状形象的展示矩阵元素值的大小。遗憾的是MATLAB中没有这样的函数,因此我就用MATLAB编写了一个matrixplot函数,下面给出示例和源码,与大家一起分享!
**********************************************
【例1】绘制网格线,网格中显示矩阵元素。 显示黑色文字:
>> x = [1,-0.2,0.3,0.8,-0.5?? -0.2,1,0.6,-0.7,0.2??? 0.3,0.6,1,0.5,-0.3??? 0.8,-0.7,0.5,1,0.7?? -0.5,0.2,-0.3,0.7,1];>> XVarNames = {'xiezhh','heping','keda','tust','tianjin'};>> matrixplot(x,'FillStyle','nofill','XVarNames',XVarNames,'YVarNames',XVarNames);
效果图1:
?
根据矩阵元素值自动设置文字颜色:
>> matrixplot(x,'FillStyle','nofill','XVarNames',XVarNames,'YVarNames',XVarNames,'TextColor','Auto','ColorBar','on');
效果图2: ?
【例2】绘制实值矩阵各元素对应的色块,通过不同的“参数/参数值”控制色块的形状、大小、颜色等属性。 方形色块,充满方格,灰白色字体
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'TextColor',[0.6,0.6,0.6],'ColorBar','on');
效果图3: ? 方形色块,根据矩阵元素值自动确定色块的大小和颜色,不显示字体
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'DisplayOpt','off','FigSize','Auto','ColorBar','on');
效果图4: ?
椭圆形色块,根据矩阵元素值自动确定色块的大小和颜色,不显示字体
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'DisplayOpt','off','FigSize','Auto','ColorBar','on','FigShape','e');
效果图5: ?
圆形色块,根据矩阵元素值自动确定色块的大小和颜色,不显示字体,上三角形式显示
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'DisplayOpt','off','FigSize','Auto','ColorBar','on','FigShape','c','FigStyle','Triu');
效果图6: ?
六边形色块,根据矩阵元素值自动确定色块的大小和颜色,显示字体,下三角形式显示
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'DisplayOpt','on','FigSize','Auto','ColorBar','on','FigShape','h','FigStyle','Tril');
效果图7: ? 表盘形色块,根据矩阵元素值自动确定色块的颜色,不显示字体
>> matrixplot(x,'XVarNames',XVarNames,'YVarNames',XVarNames,'DisplayOpt','off','FigSize','Full','ColorBar','on','FigShape','d');
效果图8: ? 【例3】读取真彩图片,绘制伪红外图。
>> I = double(imread('kids.tif'));>> matrixplot(I,'DisplayOpt','off','colorbar','on','grid','off');
效果图9: ? 最后贴上matrixplot函数的源码,源码中有详细的调用格式及参数说明,感兴趣的版友可以通过设置不同参数,做出更为精彩的图形,希望大家喜欢!
function matrixplot(data,varargin)%?? 根据实值矩阵绘制色块图,用丰富的颜色和形状形象的展示矩阵元素值的大小。%%?? matrixplot(data) 绘制矩阵色块图,data为实