Matlab怎么绘制雨云图
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,本篇内容主要讲解"Matlab怎么绘制雨云图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Matlab怎么绘制雨云图"吧!介绍写了俩代码模板,用来绘制横向
千家信息网最后更新 2025年02月24日Matlab怎么绘制雨云图
本篇内容主要讲解"Matlab怎么绘制雨云图",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Matlab怎么绘制雨云图"吧!
介绍
写了俩代码模板,用来绘制横向云雨图与纵向云雨图,云雨图其实就是用把小提琴图拆开来的模板,想获取小提琴图绘制函数的可以看这里:基于Matlab绘制小提琴图的示例代码
后面的俩模板用的时候只需要换换数据,颜色及每一类名称即可,雨云图绘制效果如下:
横向雨云图
function rainCloudsTMPL1% @author: slandarer% 在这里放入你的数据=======================================================X1=[normrnd(8,4,1,120),normrnd(5,2,1,25)];X2=[normrnd(2.5,3,1,75),normrnd(6,4,1,25),normrnd(15,1,1,100)];X3=[normrnd(4,3,1,40),normrnd(3,4,1,25)];X4=[normrnd(4,3,1,40),normrnd(2,4,1,75)];dataCell={X1,X2,X3,X4}; % 把数据放到元胞数组,要是数据太多可写循环放入 dataName={'A','B','C','D'}; % 各个数据类的名称,可空着% 颜色列表colorList=[0.9294 0.7569 0.5059 0.9176 0.5569 0.4627 0.7020 0.4784 0.5451 0.4863 0.4314 0.5490]; % =========================================================================classNum=length(dataCell);if size(colorList,1)==0 colorList=repmat([130,170,172]./255,[classNum,1]);else colorList=repmat(colorList,[ceil(classNum/size(colorList,1)),1]);endif isempty(dataName) for i=1:classNum dataName{i}=['class',num2str(i)]; endend% 坐标区域修饰hold onax=gca;ax.YLim=[1/2,classNum+2/3];ax.YTick=1:classNum;ax.LineWidth=1.2;ax.YTickLabels=dataName(end:-1:1);ax.FontSize=14;rate=3.5;% 绘制雨云图for i=1:classNum tX=dataCell{i};tX=tX(:); [F,Xi]=ksdensity(tX); % 绘制山脊图 patchCell(i)=fill([Xi(1),Xi,Xi(end)],0.2+[0,F,0].*rate+(classNum+1-i).*ones(1,length(F)+2),... colorList(i,:),'EdgeColor',[0,0,0],'FaceAlpha',0.8,'LineWidth',1.2); % 其他数据获取 qt25=quantile(tX,0.25); % 下四分位数 qt75=quantile(tX,0.75); % 上四分位数 med=median(tX); % 中位数 outliBool=isoutlier(tX,'quartiles'); % 离群值点 nX=tX(~outliBool); % 95%置信内的数 % 绘制箱线图 plot([min(nX),max(nX)],[(classNum+1-i),(classNum+1-i)],'k','lineWidth',1.2); fill([qt25,qt25,qt75,qt75],(classNum+1-i)+[-1 1 1 -1].*0.12,colorList(i,:),'EdgeColor',[0 0 0]); plot([med,med],[(classNum+1-i)-0.12,(classNum+1-i)+0.12],'Color',[0,0,0],'LineWidth',2.5) % 绘制散点 tY=(rand(length(tX),1)-0.5).*0.24+ones(length(tX),1).*(classNum+1-i); scatter(tX,tY,15,'CData',colorList(i,:),'MarkerEdgeAlpha',0.15,... 'MarkerFaceColor',colorList(i,:),'MarkerFaceAlpha',0.1)end% 绘制图例lgd=legend(patchCell,dataName);lgd.Location='best';end
纵向雨云图
function rainCloudsTMPL2% @author: slandarer% 在这里放入你的数据=======================================================X1=[normrnd(8,4,1,120),normrnd(5,2,1,25)];X2=[normrnd(2.5,3,1,75),normrnd(6,4,1,25),normrnd(15,1,1,100)];X3=[normrnd(4,3,1,40),normrnd(3,4,1,25)];X4=[normrnd(4,3,1,40),normrnd(2,4,1,75)];dataCell={X1,X2,X3,X4}; % 把数据放到元胞数组,要是数据太多可写循环放入 dataName={'A','B','C','D'}; % 各个数据类的名称,可空着% 颜色列表colorList=[0.9294 0.7569 0.5059 0.9176 0.5569 0.4627 0.7020 0.4784 0.5451 0.4863 0.4314 0.5490]; % =========================================================================classNum=length(dataCell);if size(colorList,1)==0 colorList=repmat([130,170,172]./255,[classNum,1]);else colorList=repmat(colorList,[ceil(classNum/size(colorList,1)),1]);endif isempty(dataName) for i=1:classNum dataName{i}=['class',num2str(i)]; endend% 坐标区域修饰hold onax=gca;ax.XLim=[1/2,classNum+2/3];ax.XTick=1:classNum;ax.LineWidth=1.2;ax.XTickLabels=dataName(end:-1:1);ax.FontSize=14;rate=3.5;% 绘制雨云图for i=1:classNum tX=dataCell{i};tX=tX(:); [F,Xi]=ksdensity(tX); % 绘制山脊图 patchCell(i)=fill(0.2+[0,F,0].*rate+(classNum+1-i).*ones(1,length(F)+2),[Xi(1),Xi,Xi(end)],... colorList(i,:),'EdgeColor',[0,0,0],'FaceAlpha',0.8,'LineWidth',1.2); % 其他数据获取 qt25=quantile(tX,0.25); % 下四分位数 qt75=quantile(tX,0.75); % 上四分位数 med=median(tX); % 中位数 outliBool=isoutlier(tX,'quartiles'); % 离群值点 nX=tX(~outliBool); % 95%置信内的数 % 绘制箱线图 plot([(classNum+1-i),(classNum+1-i)],[min(nX),max(nX)],'k','lineWidth',1.2); fill((classNum+1-i)+[-1 1 1 -1].*0.12,[qt25,qt25,qt75,qt75],colorList(i,:),'EdgeColor',[0 0 0]); plot([(classNum+1-i)-0.12,(classNum+1-i)+0.12],[med,med],'Color',[0,0,0],'LineWidth',2.5) % 绘制散点 tY=(rand(length(tX),1)-0.5).*0.24+ones(length(tX),1).*(classNum+1-i); scatter(tY,tX,15,'CData',colorList(i,:),'MarkerEdgeAlpha',0.15,... 'MarkerFaceColor',colorList(i,:),'MarkerFaceAlpha',0.1)end% 绘制图例lgd=legend(patchCell,dataName);lgd.Location='best';end
到此,相信大家对"Matlab怎么绘制雨云图"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
雨云
位数
云雨
名称
小提琴
模板
颜色
中位数
代码
内容
区域
图例
坐标
山脊
数组
横向
纵向
线图
要是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
tp数据库长连接
企业行政网络安全态势感知
确定数据库的物理结构设计
数据库可视化设计思路
狮子王下载软件开发
苏州计算机软件开发价钱
河南服务器电源价钱多少
怎么用php连接数据库实现签到
澳门区电子邮件服务器是
青县天气预报软件开发
怎么查看服务器是否有数据库
猎豹加速器连接谷歌服务器
日照网络安全岗位招聘
保定市豆荚网络技术有限公司
奥尔良设计 数据库
我的世界网红主播服务器
建立数据库命名
金山区多层软件开发哪家好
池州通信软件开发多少钱
租服务器我的文件安全吗
郑州商城软件开发价格实惠
施工项目网络安全月考评操作
ps软件开发者
怎么用php连接数据库实现签到
数据库取系统时间 列
特朗普宣布网络安全与基础设施
重庆微信软件开发
登录sftp服务器
java链接不上数据库
戴尔服务器固态更新