Matlab實現(xiàn)好看的配對箱線圖的繪制
寫了一個配對箱線圖繪制模板:
數(shù)據(jù)準(zhǔn)備
這里隨機生成了一些正態(tài)分布隨機數(shù)作為數(shù)據(jù),使用時可以將Y換成自己的數(shù)據(jù):
% 隨機構(gòu)造一組數(shù)據(jù) PntSet1=sort(mvnrnd(0,2,25)); PntSet2=sort(mvnrnd(.5,2.5,25)); PntSet3=sort(mvnrnd(0,2,25)); PntSet4=sort(mvnrnd(.5,2.5,25)); % Y=[PntSet1,PntSet2]; Y=[PntSet1,PntSet2,PntSet3,PntSet4];
配色
這里準(zhǔn)備了七組數(shù)據(jù),只需要修改colorList=Cn
即可:
% 配色列表 C1=[59 125 183;244 146 121;242 166 31;180 68 108;220 211 30]./255; C2=[102,173,194;36,59,66;232,69,69;194,148,102;54,43,33]./255; C3=[38,140,209;219,51,46;41,161,153;181,138,0;107,112,196]./255; C4=[110,153,89;230,201,41;79,79,54;245,245,245;199,204,158]./255; C5=[235,75,55;77,186,216;2,162,136;58,84,141;245,155,122]./255; C6=[23,23,23;121,17,36;44,9,75;31,80,91;61,36,42]./255; C7=[126,15,4;122,117,119;255,163,25;135,146,73;30,93,134]./255; colorList=C7;
C1:
C2:
C3:
C4:
C5:
C6:
C7:
繪圖及修飾
這里的修飾分為坐標(biāo)區(qū)域修飾以及圖形對象修飾兩部分,已在代碼中標(biāo)注好:
% 繪圖 boxplot(Y,'Symbol','o','OutlierSize',3,'Colors',[0,0,0]); % 坐標(biāo)區(qū)域?qū)傩栽O(shè)置 ax=gca;hold on; ax.LineWidth=1.1; ax.FontSize=11; ax.FontName='Arial'; ax.XTickLabel={'AA','BB','CC','DD','EE','FF'}; ax.Title.String='Title of Paired BoxPlot'; ax.Title.FontSize=13; ax.YLabel.String='expression of XXX'; % 修改線條粗細(xì) lineObj=findobj(gca,'Type','Line'); for i=1:length(lineObj) lineObj(i).LineWidth=1; lineObj(i).MarkerFaceColor=[1,1,1].*.3; lineObj(i).MarkerEdgeColor=[1,1,1].*.3; end % 為箱線圖的框上色 boxObj=findobj(gca,'Tag','Box'); for i=1:length(boxObj) patch(boxObj(i).XData,boxObj(i).YData,colorList(length(boxObj)+1-i,:),'FaceAlpha',0.5,... 'LineWidth',1.1); end % 繪制配對線 X=ones(size(Y)).*(1:size(Y,2)); plot(X',Y','Color',[0,0,0,.3],'Marker','o','MarkerFaceColor',[1,1,1].*.3,... 'MarkerEdgeColor',[1,1,1].*.3,'MarkerSize',3,'LineWidth',.6)
完整代碼
% pairboxplot % 隨機構(gòu)造一組數(shù)據(jù) PntSet1=sort(mvnrnd(0,2,25)); PntSet2=sort(mvnrnd(.5,2.5,25)); PntSet3=sort(mvnrnd(0,2,25)); PntSet4=sort(mvnrnd(.5,2.5,25)); % Y=[PntSet1,PntSet2]; Y=[PntSet1,PntSet2,PntSet3,PntSet4]; % 配色列表 C1=[59 125 183;244 146 121;242 166 31;180 68 108;220 211 30]./255; C2=[102,173,194;36,59,66;232,69,69;194,148,102;54,43,33]./255; C3=[38,140,209;219,51,46;41,161,153;181,138,0;107,112,196]./255; C4=[110,153,89;230,201,41;79,79,54;245,245,245;199,204,158]./255; C5=[235,75,55;77,186,216;2,162,136;58,84,141;245,155,122]./255; C6=[23,23,23;121,17,36;44,9,75;31,80,91;61,36,42]./255; C7=[126,15,4;122,117,119;255,163,25;135,146,73;30,93,134]./255; colorList=C7; % 繪圖 boxplot(Y,'Symbol','o','OutlierSize',3,'Colors',[0,0,0]); % 坐標(biāo)區(qū)域?qū)傩栽O(shè)置 ax=gca;hold on; ax.LineWidth=1.1; ax.FontSize=11; ax.FontName='Arial'; ax.XTickLabel={'AA','BB','CC','DD','EE','FF'}; ax.Title.String='Title of Paired BoxPlot'; ax.Title.FontSize=13; ax.YLabel.String='expression of XXX'; % 修改線條粗細(xì) lineObj=findobj(gca,'Type','Line'); for i=1:length(lineObj) lineObj(i).LineWidth=1; lineObj(i).MarkerFaceColor=[1,1,1].*.3; lineObj(i).MarkerEdgeColor=[1,1,1].*.3; end % 為箱線圖的框上色 boxObj=findobj(gca,'Tag','Box'); for i=1:length(boxObj) patch(boxObj(i).XData,boxObj(i).YData,colorList(length(boxObj)+1-i,:),'FaceAlpha',0.5,... 'LineWidth',1.1); end % 繪制配對線 X=ones(size(Y)).*(1:size(Y,2)); plot(X',Y','Color',[0,0,0,.3],'Marker','o','MarkerFaceColor',[1,1,1].*.3,... 'MarkerEdgeColor',[1,1,1].*.3,'MarkerSize',3,'LineWidth',.6)
以上就是Matlab實現(xiàn)好看的配對箱線圖的繪制的詳細(xì)內(nèi)容,更多關(guān)于Matlab配對箱線圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
boost.asio框架系列之調(diào)度器io_service
這篇文章介紹了boost.asio框架系列之調(diào)度器io_service,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06C++構(gòu)造函數(shù)初始化列表的實現(xiàn)詳解
構(gòu)造函數(shù)主要作用在于創(chuàng)建對象時為對象的成員屬性賦值,構(gòu)造函數(shù)由編譯器自動調(diào)用,無須手動調(diào)用;析構(gòu)函數(shù)主要作用在于對象銷毀前系統(tǒng)自動調(diào)用,執(zhí)行一 些清理工作2022-09-09C語言中pthread_exit和pehread_join的使用
pthread_exit用于強制退出一個線程,pthread_join用于阻塞等待線程退出,獲取線程退出狀態(tài),本文主要介紹了C語言中pthread_exit和pehread_join函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下2024-02-02makefile如何調(diào)用靜態(tài)庫的方法實現(xiàn)
這篇文章主要介紹了makefile如何調(diào)用靜態(tài)庫的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12深入理解C++中的new和delete并實現(xiàn)對象池
這篇文章主要介紹了C++中的new和delete并實現(xiàn)對象池,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09