文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Matlab怎么绘制雨云图

2023-06-30 14:12

关注

本篇内容主要讲解“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

Matlab怎么绘制雨云图

纵向雨云图

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怎么绘制雨云图

到此,相信大家对“Matlab怎么绘制雨云图”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯