最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Matlab繪制雨云圖的方法詳解

 更新時(shí)間:2022年05月16日 10:42:29   作者:slandarer  
這篇文章主要介紹了如何利用Matlab實(shí)現(xiàn)雨云圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定的幫助,需要的可以參考一下

介紹

寫了倆代碼模板,用來繪制橫向云雨圖與縱向云雨圖,云雨圖其實(shí)就是用把小提琴圖拆開來的模板,想獲取小提琴圖繪制函數(shù)的可以看這里:基于Matlab繪制小提琴圖的示例代碼

后面的倆模板用的時(shí)候只需要換換數(shù)據(jù),顏色及每一類名稱即可,雨云圖繪制效果如下:

橫向雨云圖

function rainCloudsTMPL1
% @author: slandarer


% 在這里放入你的數(shù)據(jù)=======================================================
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};  % 把數(shù)據(jù)放到元胞數(shù)組,要是數(shù)據(jù)太多可寫循環(huán)放入  
dataName={'A','B','C','D'};  % 各個(gè)數(shù)據(jù)類的名稱,可空著

% 顏色列表
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]);
end
if isempty(dataName)
    for i=1:classNum
        dataName{i}=['class',num2str(i)];
    end
end

% 坐標(biāo)區(qū)域修飾
hold on
ax=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);

    % 其他數(shù)據(jù)獲取
    qt25=quantile(tX,0.25); % 下四分位數(shù)
    qt75=quantile(tX,0.75); % 上四分位數(shù)
    med=median(tX);         % 中位數(shù)

    outliBool=isoutlier(tX,'quartiles');  % 離群值點(diǎn)
    nX=tX(~outliBool);                    % 95%置信內(nèi)的數(shù)
    
    % 繪制箱線圖
    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)

    % 繪制散點(diǎn) 
    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


% 在這里放入你的數(shù)據(jù)=======================================================
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};  % 把數(shù)據(jù)放到元胞數(shù)組,要是數(shù)據(jù)太多可寫循環(huán)放入  
dataName={'A','B','C','D'};  % 各個(gè)數(shù)據(jù)類的名稱,可空著

% 顏色列表
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]);
end
if isempty(dataName)
    for i=1:classNum
        dataName{i}=['class',num2str(i)];
    end
end

% 坐標(biāo)區(qū)域修飾
hold on
ax=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);

    % 其他數(shù)據(jù)獲取
    qt25=quantile(tX,0.25); % 下四分位數(shù)
    qt75=quantile(tX,0.75); % 上四分位數(shù) 
    med=median(tX);         % 中位數(shù)

    outliBool=isoutlier(tX,'quartiles');  % 離群值點(diǎn)
    nX=tX(~outliBool);                    % 95%置信內(nèi)的數(shù)
    
    % 繪制箱線圖
    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)

    % 繪制散點(diǎn) 
    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

到此這篇關(guān)于Matlab繪制雨云圖的方法詳解的文章就介紹到這了,更多相關(guān)Matlab雨云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++編寫非侵入式接口

    C++編寫非侵入式接口

    這篇文章主要介紹了C++編寫非侵入式接口的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 解決C++中重定義的方法總結(jié)

    解決C++中重定義的方法總結(jié)

    本篇文章是對(duì)C++中重定義的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++ 命名空間詳解

    C++ 命名空間詳解

    這篇文章主要介紹了C++ 命名空間的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2021-11-11
  • C++ 異常處理 catch(...)介紹

    C++ 異常處理 catch(...)介紹

    catch(…)能夠捕獲多種數(shù)據(jù)類型的異常對(duì)象,所以它提供給程序員一種對(duì)異常 對(duì)象更好的控制手段,使開發(fā)的軟件系統(tǒng)有很好的可靠性
    2013-09-09
  • c++ 如何實(shí)現(xiàn)線程注入

    c++ 如何實(shí)現(xiàn)線程注入

    本文主要介紹了各種API遠(yuǎn)程線程注入的方法,分別是 遠(yuǎn)程線程注入,普通消息鉤子注入,全局消息鉤子注入,APC應(yīng)用層異步注入,ZwCreateThreadEx強(qiáng)力注入,純匯編實(shí)現(xiàn)的線程注入等
    2021-06-06
  • C語言 奇偶排序算法詳解及實(shí)例代碼

    C語言 奇偶排序算法詳解及實(shí)例代碼

    這篇文章主要介紹了C語言 奇偶排序算法詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • C++實(shí)現(xiàn)LeetCode(93.復(fù)原IP地址)

    C++實(shí)現(xiàn)LeetCode(93.復(fù)原IP地址)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(93.復(fù)原IP地址),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • c++ 類中const成員變量的賦值方法

    c++ 類中const成員變量的賦值方法

    下面小編就為大家?guī)硪黄猚++ 類中const成員變量的賦值方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • C++變量存儲(chǔ)的生命周期與作用域?qū)嵗a精講

    C++變量存儲(chǔ)的生命周期與作用域?qū)嵗a精講

    這篇文章主要介紹了C++變量存儲(chǔ)的生命周期與作用域,從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個(gè)過程就是一個(gè)生命周期。本文將通過示例為大家詳細(xì)講講,感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • windows下如何安裝OpenCL

    windows下如何安裝OpenCL

    這篇文章主要介紹了windows下如何安裝OpenCL,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

宜宾市| 顺义区| 绩溪县| 宾川县| 宜春市| 汶川县| 中西区| 临泽县| 萨迦县| 汉源县| 泸州市| 长寿区| 五家渠市| 乌鲁木齐市| 莱州市| 和龙市| 柳河县| 准格尔旗| 合山市| 江北区| 西和县| 和硕县| 黄冈市| 环江| 南昌县| 论坛| 和龙市| 剑川县| 鹿泉市| 津市市| 达日县| 定边县| 凤山市| 云龙县| 南宫市| 灵璧县| 改则县| 休宁县| 祁阳县| 花莲县| 澜沧|