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

Matlab繪制雨云圖的方法詳解

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

介紹

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

后面的倆模板用的時候只需要換換數(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'};  % 各個數(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');  % 離群值點
    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)

    % 繪制散點 
    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'};  % 各個數(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');  % 離群值點
    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)

    % 繪制散點 
    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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

    C++編寫非侵入式接口

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

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

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

    C++ 命名空間詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

    windows下如何安裝OpenCL

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

最新評論

图片| 姚安县| 璧山县| 佛坪县| 罗甸县| 枣阳市| 黄浦区| 江门市| 班戈县| 靖江市| 肥东县| 鹤庆县| 鄂尔多斯市| 台州市| 许昌县| 西峡县| 延津县| 饶河县| 南汇区| 乌拉特前旗| 武胜县| 东兰县| 富宁县| 织金县| 囊谦县| 乌兰浩特市| 烟台市| 兴山县| 盐边县| 兴化市| 杭锦旗| 定州市| 景宁| 若尔盖县| 饶平县| 茂名市| 进贤县| 武威市| 原平市| 抚松县| 通渭县|