c/c++语言开发共享Matlab实现带竖线散点的核密度图的绘制

带竖线散点的核密度图绘制模板今天带来一个带竖线散点的核密度图绘制模板,作为模板,想要画出属于自己的图,需要修改的就只有数据,格式,配色三样,以下给出模板使用详细讲解:part1 数据这里的数据需要通过

带竖线散点的核密度图绘制模板

Matlab实现带竖线散点的核密度图的绘制

Matlab实现带竖线散点的核密度图的绘制

今天带来一个带竖线散点的核密度图绘制模板,作为模板,想要画出属于自己的图,需要修改的就只有数据,格式,配色三样,以下给出模板使用详细讲解:

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);  

Matlab实现带竖线散点的核密度图的绘制

五组数据(数据组数超过五组则后期需要设置更长的配色):

% 导入数据,更多的数据也请使用  % 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);  

Matlab实现带竖线散点的核密度图的绘制

这部分代码里用的是随机生成的正态分布,可以将其更改为自己的数据。

part2 格式

有俩基础格式:

% 一些基础设置  scattersep='off'; % 是否分开绘制竖线散点  totalratio='off'; % 是否各组按比例绘制  

totalratio属性能调节各组图像是否各组按比例绘制,如果将其设置为on

Matlab实现带竖线散点的核密度图的绘制

scattersep属性能调节是否分开绘制竖线散点,如果将其设置为on

Matlab实现带竖线散点的核密度图的绘制

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:

Matlab实现带竖线散点的核密度图的绘制

c2:

Matlab实现带竖线散点的核密度图的绘制

c3:

Matlab实现带竖线散点的核密度图的绘制

c4:

Matlab实现带竖线散点的核密度图的绘制

c5:

Matlab实现带竖线散点的核密度图的绘制

c6:

Matlab实现带竖线散点的核密度图的绘制

c7:

Matlab实现带竖线散点的核密度图的绘制

c8:

Matlab实现带竖线散点的核密度图的绘制

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);  

到此这篇关于matlab实现带竖线散点的核密度图的绘制的文章就介绍到这了,更多相关matlab核密度图内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享Matlab实现带竖线散点的核密度图的绘制,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

www.ctvol.com true Article c/c++语言开发共享Matlab实现带竖线散点的核密度图的绘制

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1237049.html

(0)
上一篇 2022年9月7日 上午6:14
下一篇 2022年9月7日 上午6:16

精彩推荐