当前位置: 首页 > news >正文

技术支持 优府网络太原网站建设新吴区网站建设

技术支持 优府网络太原网站建设,新吴区网站建设,wordpress 微信服务号,网站顶部图片素材好早之前写过一个绘制相关系数矩阵的代码#xff0c;但是会自动求相关系数#xff0c;而且画出来的热图只能是方形#xff0c;这里写一款允许nan值出现#xff0c;任意形状的热图绘制代码#xff0c;绘制效果如下#xff1a; 如遇到bug请后台提出#xff0c;并去gitee下…好早之前写过一个绘制相关系数矩阵的代码但是会自动求相关系数而且画出来的热图只能是方形这里写一款允许nan值出现任意形状的热图绘制代码绘制效果如下 如遇到bug请后台提出并去gitee下载更新版本 教程部分 1 基础绘制 假设有个随机数矩阵绘图 Datarand(15,15); SHMSHeatmap(Data,Format,sq); SHMSHM.draw();假设存在负数 Datarand(15,15)-.5; SHMSHeatmap(Data,Format,sq); SHMSHM.draw();假设存在nan: Datarand(12,12)-.5; Data([4,5,13])nan; SHMSHeatmap(Data,Format,sq); SHMSHM.draw();假设非方阵 Datarand(25,30); SHMSHeatmap(Data,Format,sq); SHMSHM.draw();颜色怎么换在后面会讲到。 2 显示文字 使用setText方法显示文字 Datarand(12,12)-.5; Data([4,5,13])nan;SHMSHeatmap(Data,Format,sq); SHMSHM.draw();SHM.setText();如果要修饰或显示文字请在修改颜色后进行。 3 修改形状 形状有以下几个可选项 sq : 方形(默认)pie : 饼图circ : 圆形oval : 椭圆形hex : 六边形asq : 自带调整大小的方形acirc : 自带调整大小的圆形 figure() Datarand(12,12)-.5; SHMSHeatmap(Data,Format,oval); SHMSHM.draw(); figure() Datarand(12,12)-.5; SHMSHeatmap(Data,Format,pie); SHMSHM.draw(); 展示一下全部类型 sq pie circ oval hex asq acirc 4 颜色范围 新版本使用clim老版本使用caxis调整映射范围 Datarand(12,12)-.5; Data([4,5,13])nan;SHMSHeatmap(Data,Format,sq); SHMSHM.draw();clim([-.8,.8]) SHM.setText();调整前 调整后 5 colormap matlab自带的colormap都能用 Datarand(14,14); SHMSHeatmap(Data,Format,sq); SHM.draw();colormap(bone)可以联合我写的slanCM工具函数 https://slandarer.blog.csdn.net/article/details/127719784 举点例子 colormap(flipud(slanCM(20)))colormap(flipud(slanCM(21)))colormap(slanCM(61))colormap(slanCM(177))再比如 Datarand(12,12)-.5; Data([4,5,13])nan;SHMSHeatmap(Data,Format,sq); SHMSHM.draw();clim([-.7,.7]) colormap(slanCM(141)) SHM.setText();clim([-.7,.7]) colormap(slanCM(136))clim([-.7,.7]) colormap(slanCM(134))clim([-.8,.8]) colormap(slanCM(110))clim([-1,1]) colormap(slanCM(97))6 调整colormap位置 假设编写如下代码 Datarand(3,12); SHMSHeatmap(Data,Format,sq); SHMSHM.draw();改成这样 Datarand(3,12); SHMSHeatmap(Data,Format,sq); SHMSHM.draw();CBcolorbar; CB.Locationsouthoutside;7 修改标签 改编x轴y轴标签就还是设置XTickLabel 和YTickLabel: Datarand(10,10); SHMSHeatmap(Data,Format,sq); SHMSHM.draw(); axgca; ax.XTickLabel{X-1,X-2,X-3,X-4,X-5,X-6,X-7,X-8,X-9,X-10}; ax.YTickLabel{Y-1,Y-2,Y-3,Y-4,Y-5,Y-6,Y-7,Y-8,Y-9,Y-10}; ax.FontSize14;8 整体修饰 使用 setBox 修饰边框setPatch 修饰图形setText 修饰文本 可对各个部分进行整体修改。 修改图形边缘及框颜色 Datarand(10,10); Data([4,5,13])nan;SHMSHeatmap(Data,Format,pie); SHMSHM.draw(); SHM.setBox(Color,[0,0,.8]) SHM.setPatch(EdgeColor,[.8,0,0])修改全部文本颜色 Datarand(10,10); Data([4,5,13])nan;SHMSHeatmap(Data,Format,sq); SHMSHM.draw(); SHM.setText(Color,[0,0,.8],FontSize,14)9 局部修改 使用 setTextMNsetPatchMN 设置第m行n列对象的属性 举个例子把数值大于0.9部分文字变为星号并用红色框框起来 Datarand(9,9); Data([4,5,13])nan;SHMSHeatmap(Data,Format,sq); SHMSHM.draw();SHM.setText(); for i1:size(Data,1)for j1:size(Data,2)if Data(i,j).9SHM.setTextMN(i,j,String,**,FontSize,20)SHM.setPatchMN(i,j,EdgeColor,[1,0,0],LineWidth,2)endend end局部设置可设置nan部分颜色 SHM.setPatchMN(4,1,FaceColor,[.8,.6,.6])工具函数完整代码 classdef SHeatmap % % Format % ------------------------------------------------------------------------- % sq : 方形(默认) % pie : 饼图 % circ : 圆形 % oval : 椭圆形 % hex : 六边形 % asq : 自带调整大小的方形 % acirc : 自带调整大小的圆形 % % author : slandarer % gzh : slandarer随笔 % ------------------------------------------------------------------------- % Zhaoxu Liu / slandarer (2023). special heatmap % (https://www.mathworks.com/matlabcentral/fileexchange/125520-special-heatmap), % MATLAB Central File Exchange. 检索来源 2023/3/1. % -------------------------------------------------------------------------propertiesax,arginList{Format}Formatsq % sq : 方形(默认)% pie : 饼图% circ : 圆形% oval : 椭圆形% hex : 六边形% asq : 自带调整大小的方形% acirc : 自带调整大小的圆形DatadfColor1[0.9686 0.9882 0.9412; 0.9454 0.9791 0.9199; 0.9221 0.9700 0.8987; 0.8988 0.9609 0.8774;0.8759 0.9519 0.8560; 0.8557 0.9438 0.8338; 0.8354 0.9357 0.8115; 0.8152 0.9276 0.7892;0.7909 0.9180 0.7685; 0.7545 0.9039 0.7523; 0.7180 0.8897 0.7361; 0.6816 0.8755 0.7199;0.6417 0.8602 0.7155; 0.5962 0.8430 0.7307; 0.5507 0.8258 0.7459; 0.5051 0.8086 0.7610;0.4596 0.7873 0.7762; 0.4140 0.7620 0.7914; 0.3685 0.7367 0.8066; 0.3230 0.7114 0.8218;0.2837 0.6773 0.8142; 0.2483 0.6378 0.7929; 0.2129 0.5984 0.7717; 0.1775 0.5589 0.7504;0.1421 0.5217 0.7314; 0.1066 0.4853 0.7132; 0.0712 0.4488 0.6950; 0.0358 0.4124 0.6768;0.0314 0.3724 0.6364; 0.0314 0.3319 0.5929; 0.0314 0.2915 0.5494; 0.0314 0.2510 0.5059]dfColor2[0.6196 0.0039 0.2588; 0.6892 0.0811 0.2753; 0.7588 0.1583 0.2917; 0.8283 0.2354 0.3082;0.8706 0.2966 0.2961; 0.9098 0.3561 0.2810; 0.9490 0.4156 0.2658; 0.9660 0.4932 0.2931;0.9774 0.5755 0.3311; 0.9887 0.6577 0.3690; 0.9930 0.7266 0.4176; 0.9943 0.7899 0.4707;0.9956 0.8531 0.5238; 0.9968 0.9020 0.5846; 0.9981 0.9412 0.6503; 0.9994 0.9804 0.7161;0.9842 0.9937 0.7244; 0.9526 0.9810 0.6750; 0.9209 0.9684 0.6257; 0.8721 0.9486 0.6022;0.7975 0.9183 0.6173; 0.7228 0.8879 0.6325; 0.6444 0.8564 0.6435; 0.5571 0.8223 0.6448;0.4698 0.7881 0.6460; 0.3868 0.7461 0.6531; 0.3211 0.6727 0.6835; 0.2553 0.5994 0.7139;0.2016 0.5261 0.7378; 0.2573 0.4540 0.7036; 0.3130 0.3819 0.6694; 0.3686 0.3098 0.6353]Colormap;maxVpatchHdl;boxHdl;pieHdl;textHdlendmethodsfunction objSHeatmap(Data,varargin)obj.DataData;obj.maxVmax(max(abs(obj.Data)));% 获取其他数据disp(char([64 97 117 116 104 111 114 32 58 32,...115 108 97 110 100 97 114 101 114]))for i1:2:(length(varargin)-1)tidismember(obj.arginList,varargin{i});if any(tid)obj.(obj.arginList{tid})varargin{i1};endend% 设置配色if any(any(obj.Data0))obj.Colormapobj.dfColor2;% tXlinspace(0,1,size(obj.Colormap,1));% tXilinspace(0,1,256);% tRinterp1(tX,obj.Colormap(:,1),tXi);% tGinterp1(tX,obj.Colormap(:,2),tXi);% tBinterp1(tX,obj.Colormap(:,3),tXi);% obj.Colormap[tR(:),tG(:),tB(:)];elseobj.Colormapobj.dfColor1(end:-1:1,:);endendfunction objdraw(obj)obj.axgca;hold on;box onobj.ax.FontNameTimes New Roman;obj.ax.FontSize12;obj.ax.LineWidth.8;obj.ax.XLim[.5,size(obj.Data,2).5];obj.ax.YLim[.5,size(obj.Data,1).5];obj.ax.YDirreverse;obj.ax.TickDirout;obj.ax.TickLength[0.002,0.002];obj.ax.DataAspectRatio[1,1,1];obj.ax.YTick1:size(obj.Data,1);obj.ax.XTick1:size(obj.Data,2);colormap(obj.Colormap)colorbarif any(any(obj.Data0))try caxis(obj.maxV.*[-1,1]),catch,endtry clim(obj.maxV.*[-1,1]),catch,endelsetry caxis(obj.maxV.*[0,1]),catch,endtry clim(obj.maxV.*[0,1]),catch,endend% 调整初始界面大小figobj.ax.Parent;fig.Color[1,1,1];if max(fig.Position(3:4))600fig.Position(3:4)[1.6,1.8].*fig.Position(3:4);fig.Position(1:2)fig.Position(1:2)./4;endbX1repmat([.5,size(obj.Data,2).5,nan],[size(obj.Data,1)1,1]);bY1repmat((.5:1:(size(obj.Data,1).5)),[1,3]);bX2repmat((.5:1:(size(obj.Data,2).5)),[1,3]);bY2repmat([.5,size(obj.Data,1).5,nan],[size(obj.Data,2)1,1]);obj.boxHdlplot([bX1(:);bX2(:)],[bY1(:);bY2(:)],LineWidth,.8,Color,[1,1,1].*.85);if isequal(obj.Format,sq)set(obj.boxHdl,Color,[1,1,1,0])endbaseTlinspace(0,2*pi,200);hexTlinspace(0,2*pi,7);thetaMat[1,-1;1,1].*sqrt(2)./2;for row1:size(obj.Data,1)for col1:size(obj.Data,2) if isnan(obj.Data(row,col))obj.patchHdl(row,col)fill([-.5,.5,.5,-.5].*.98col,[-.5,-.5,.5,.5].*.98row,[.8,.8,.8],EdgeColor,none);obj.pieHdl(row,col)fill([0,0,0,0],[0,0,0,0],[0,0,0]);obj.textHdl(row,col)text(col,row,×,FontName,Times New Roman,HorizontalAlignment,center,FontSize,20);elsetRatioabs(obj.Data(row,col))./obj.maxV;switch obj.Formatcase sqobj.patchHdl(row,col)fill([-.5,.5,.5,-.5].*.98col,[-.5,-.5,.5,.5].*.98row,...obj.Data(row,col),EdgeColor,none);case asqobj.patchHdl(row,col)fill([-.5,.5,.5,-.5].*.98.*tRatiocol,[-.5,-.5,.5,.5].*.98.*tRatiorow,...obj.Data(row,col),EdgeColor,none);case piebaseCircXcos(baseT).*.92.*.5;baseCircYsin(baseT).*.92.*.5;obj.pieHdl(row,col)fill(baseCircXcol,baseCircYrow,...[1,1,1],EdgeColor,[1,1,1].*.3,LineWidth,.8);baseThetalinspace(pi/2,pi/2obj.Data(row,col)./obj.maxV.*2.*pi,200);basePieX[0,cos(baseTheta).*.92.*.5];basePieY[0,sin(baseTheta).*.92.*.5];obj.patchHdl(row,col)fill(basePieXcol,-basePieYrow,...obj.Data(row,col),EdgeColor,[1,1,1].*.3,lineWidth,.8);case circbaseCircXcos(baseT).*.92.*.5;baseCircYsin(baseT).*.92.*.5;obj.patchHdl(row,col)fill(baseCircXcol,baseCircYrow,...obj.Data(row,col),EdgeColor,none,lineWidth,.8);case acircbaseCircXcos(baseT).*.92.*.5;baseCircYsin(baseT).*.92.*.5;obj.patchHdl(row,col)fill(baseCircX.*tRatiocol,baseCircY.*tRatiorow,...obj.Data(row,col),EdgeColor,none,lineWidth,.8);case ovaltValueobj.Data(row,col)./obj.maxV;baseA1(tValue0).*tValue;baseB1-(tValue0).*tValue;baseOvalXcos(baseT).*.98.*.5.*baseA;baseOvalYsin(baseT).*.98.*.5.*baseB;baseOvalXYthetaMat*[baseOvalX;baseOvalY];obj.patchHdl(row,col)fill(baseOvalXY(1,:)col,-baseOvalXY(2,:)row,...obj.Data(row,col),EdgeColor,[1,1,1].*.3,lineWidth,.8);case hexobj.patchHdl(row,col)fill(cos(hexT).*.5.*.98.*tRatiocol,sin(hexT).*.5.*.98.*tRatiorow,...obj.Data(row,col),EdgeColor,[1,1,1].*.3,lineWidth,.8);endobj.textHdl(row,col)text(col,row,sprintf(%.2f,obj.Data(row,col)),FontName,Times New Roman,HorizontalAlignment,center,Visible,off);endendendend% 修饰文本function setText(obj,varargin)graymapmean(get(obj.ax,Colormap),2);climitget(obj.ax,CLim);for row1:size(obj.Data,1)for col1:size(obj.Data,2) set(obj.textHdl(row,col),Visible,on,Color,...[1,1,1].*(interp1(linspace(climit(1),climit(2),size(graymap,1)),graymap,obj.Data(row,col)).5),varargin{:})endendendfunction setTextMN(obj,m,n,varargin)set(obj.textHdl(m,n),varargin{:})end% 设置图形样式function setPatch(obj,varargin)for row1:size(obj.Data,1)for col1:size(obj.Data,2) if ~isnan(obj.Data(row,col))set(obj.patchHdl(row,col),varargin{:})if isequal(obj.Format,pie)set(obj.pieHdl(row,col),varargin{:}) endendendendendfunction setPatchMN(obj,m,n,varargin)set(obj.patchHdl(m,n),varargin{:})if isequal(obj.Format,pie)set(obj.pieHdl(m,n),varargin{:})endend% 设置框样式function setBox(obj,varargin)set(obj.boxHdl,varargin{:})endend % % author : slandarer % gzh : slandarer随笔 % ------------------------------------------------------------------------- % Zhaoxu Liu / slandarer (2023). special heatmap % (https://www.mathworks.com/matlabcentral/fileexchange/125520-special-heatmap), % MATLAB Central File Exchange. 检索来源 2023/3/1. % ------------------------------------------------------------------------- end完 编程不易希望大家该点赞的点赞该在看的在看 未经允许本代码请勿作商业用途引用的话可以引用我file exchange上的链接可使用如下格式 Zhaoxu Liu / slandarer (2023). special heatmap (https://www.mathworks.com/matlabcentral/fileexchange/125520-special-heatmap), MATLAB Central File Exchange. 检索来源 2023/3/1. 若转载请保留以上file exchange链接及本文链接!
http://www.dnsts.com.cn/news/81014.html

相关文章:

  • 人事处网站建设绩效目标概述wordpress 4.7.0 漏洞
  • 盐城最专业网站建设网站排名优化网站怎么企业备案信息
  • 顺义网站制作国外用wordpress
  • 网站源码下载免费源码互联网怎么做
  • 深圳定制网站制作费用室内装修设计图片欣赏
  • 个性化网站定制网站建设公司的成本有哪些内容
  • 怎么制作免费建网站flex网站模板
  • 开购物网站需要多少钱外国域名注册网站
  • 保险网站建设的目标做美图 网站有哪些东西吗
  • 国外有建站公司吗合肥关键词排名技巧
  • 做网站帮外国人淘宝网络营销评价的名词解释
  • 四川网站建设套餐食品企业网站模板
  • 东莞房产网站建设化工网站建设
  • 网站 优化 分析免费做网站手机
  • wordpress 移动导航呼出企业seo顾问
  • 广州 网站开发 骏域怎么做网盘网站
  • 上海徐家汇网站建设填写网站信息
  • 登不了wordpress网站优化中友情链接怎么做
  • 怎么做一张图片的网站免费建网站家谱系统
  • 网站开发行业代码太原自助建站系统
  • 宁国网站开发长沙网络营销 公司
  • python 网站开发流程wordpress the7 安装
  • 医疗网站建设多少钱做网站彩票代理犯法吗
  • 网站高端定制wordpress增加网站网页关键词
  • 深圳led网站建设企业管理系统免费下载
  • 吉安知名网站建设国内产品网站建设
  • 杨家平网站建设如何搭建高品质网站
  • 域名注册哪个网站好电商美工培训哪个学校好
  • 基于django电商网站开发课设报告济南软件外包公司
  • 咸宁网站建设长沙制作网站的公司