網站首頁 編程語言 正文
帶豎線散點的核密度圖繪制模板
今天帶來一個帶豎線散點的核密度圖繪制模板,作為模板,想要畫出屬于自己的圖,需要修改的就只有數據,格式,配色三樣,以下給出模板使用詳細講解:
part1 數據
這里的數據需要通過Data(n).X=...
的格式設置,例如,三組數據:
% 導入數據,更多的數據也請使用 % Data(n).X=......的格式 Data(1).X=mvnrnd(40,60,300); Data(2).X=mvnrnd(60,60,600); Data(3).X=mvnrnd(80,60,900);
五組數據(數據組數超過五組則后期需要設置更長的配色):
% 導入數據,更多的數據也請使用 % Data(n).X=......的格式 Data(1).X=mvnrnd(40,60,300); Data(2).X=mvnrnd(60,60,600); Data(3).X=mvnrnd(80,60,900); Data(4).X=mvnrnd(100,60,1200); Data(5).X=mvnrnd(120,60,1200);
這部分代碼里用的是隨機生成的正態分布,可以將其更改為自己的數據。
part2 格式
有倆基礎格式:
% 一些基礎設置 scatterSep='off'; % 是否分開繪制豎線散點 totalRatio='off'; % 是否各組按比例繪制
totalRatio
屬性能調節各組圖像是否各組按比例繪制,如果將其設置為on
:
scatterSep
屬性能調節是否分開繪制豎線散點,如果將其設置為on
:
part3 配色
這里準備了八組數據,只需要修改colorList=Cn
即可:
% 配色列表 C1=[211 43 43;61 96 137;249 206 61;76 103 86;80 80 80]./255; C2=[102,173,194;36,59,66;232,69,69;194,148,102;54,43,33]./255; C3=[244,241,222;223,122,94;60 64 91;130 178 154;240 201 134]./255; C4=[126,15,4;122,117,119;255,163,25;135,146,73;30,93,134]./255; C5=[198,199,201;38,74,96;209,80,51;241,174,44;12,13,15]./255; C6=[235,75,55;77,186,216;2,162,136;58,84,141;245,155,122]./255; C7=[23,23,23;121,17,36;44,9,75;31,80,91;61,36,42]./255; C8=[47,62,66;203,129,70;0 64 115;152,58,58;20 72 83]./255; colorList=C2;
C1:
C2:
C3:
C4:
C5:
C6:
C7:
C8:
part4 模板完整代碼
% line area % @author : slandarer % @公眾號 : slandarer隨筆 clc;clear % 導入數據,更多的數據也請使用 % Data(n).X=......的格式 Data(1).X=mvnrnd(40,60,300); Data(2).X=mvnrnd(60,60,600); Data(3).X=mvnrnd(80,60,900); Data(4).X=mvnrnd(100,60,1200); Data(5).X=mvnrnd(120,60,1200); % 一些基礎設置 scatterSep='off'; % 是否分開繪制豎線散點 totalRatio='on'; % 是否各組按比例繪制 % 配色列表 C1=[211 43 43;61 96 137;249 206 61;76 103 86;80 80 80]./255; C2=[102,173,194;36,59,66;232,69,69;194,148,102;54,43,33]./255; C3=[244,241,222;223,122,94;60 64 91;130 178 154;240 201 134]./255; C4=[126,15,4;122,117,119;255,163,25;135,146,73;30,93,134]./255; C5=[198,199,201;38,74,96;209,80,51;241,174,44;12,13,15]./255; C6=[235,75,55;77,186,216;2,162,136;58,84,141;245,155,122]./255; C7=[23,23,23;121,17,36;44,9,75;31,80,91;61,36,42]./255; C8=[47,62,66;203,129,70;0 64 115;152,58,58;20 72 83]./255; colorList=C2; % ========================================================================= % 圖像繪制 ax=gca;hold on N=length(Data); areaHdl(N)=nan; lgdStrs{N}=''; % 計算各類數據量 K=arrayfun(@(x) length(x.X),Data); % 循環繪圖 for n=1:N [f,xi]=ksdensity(Data(n).X); if strcmp(totalRatio,'on') f=f.*K(n)./sum(K); end areaHdl(n)=area(xi,f,'FaceColor',colorList(n,:),... 'EdgeColor',colorList(n,:),'FaceAlpha',.5,'LineWidth',1.5); lgdStrs{n}=['Group ',num2str(n)]; end % 繪制圖例 lgd=legend(areaHdl,lgdStrs{:}); lgd.AutoUpdate='off'; lgd.Location='best'; % 調整軸范圍 posSep=ax.YLim(2)-0; if strcmp(scatterSep,'on') ax.YLim(1)=-posSep/6*N; else ax.YLim(1)=-posSep/6; end ax.XLim=ax.XLim; totalSep=diff(ax.YLim); for n=1:N dy=strcmp(scatterSep,'on'); LY=ones(1,K(n)).*[(-posSep/6).*(.1+dy.*(n-1));(-posSep/6.)*(.9+dy.*(n-1));nan]; LX=[Data(n).X(:)';Data(n).X(:)';ones(1,K(n)).*nan]; line(LX(:),LY(:),'Color',[colorList(n,:),.4],'lineWidth',1) end % 坐標區域修飾 ax.Box='on'; ax.BoxStyle='full'; ax.LineWidth=1; ax.FontSize=11; ax.FontName='Arial'; ax.TickDir='out'; ax.TickLength=[.005,.1]; ax.YTick(ax.YTick<-eps)=[]; ax.Title.String='area plot with | scatter'; ax.Title.FontSize=14; ax.XLabel.String='XXXXX'; ax.YLabel.String='YYYYY'; % 繪制基準線及框線 fplot(@(t)t.*0,'Color',ax.XColor,'LineWidth',ax.LineWidth);
原文鏈接:https://blog.csdn.net/slandarer/article/details/126450182
相關推薦
- 2022-09-13 Python判斷和循環語句的分析與應用_python
- 2022-08-30 關于Flask高級_內置信號的介紹和兩個小實例
- 2022-05-12 Kotlin set集合去重,獲取元素可變set集合,set與list轉換
- 2021-12-12 【Groovy】集合遍歷 ( 使用集合的 eachWithIndex 方法進行遍歷 | 代碼示例 )
- 2022-04-18 Docker安裝Nacos服務的實現_docker
- 2022-03-24 .Net?Core服務治理Consul使用服務發現_自學過程
- 2022-12-27 Swift?Error重構優化詳解_Swift
- 2023-12-18 Redis的簡單使用
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支