matlab如何画联合分布图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何画联合分布图相关的知识,希望对你有一定的参考价值。

分别有两列数据 一列是幅值、另一列是时间 我想利用联合分布图画出幅值与时间的关系,最好是 类似于下图

求大神指点 悬赏10个财富 成功后我会追加 谢谢!

问题表示还是要说清楚一点,列两数据是化不出三维图的
你举例的图,起码有三种,横坐标,纵坐标,还有一种是以颜色来表示值的大小

如果是要画分布图,那么需要对你原来的数据作统计,
以统计的数量作为第三种数据, 才能画出那样的图。

假设你原来的两列数据分别为t和x,
[N C]=hist3([t(:) x(:)],[10 10]);
N=N';
imagesc(C1,C2,N);
colormap(jet);

就会画出如上的分布图,这里将原来的t和x各分为10个区间,总共分成把t,x平面分成100个区域
C1是每个t区间的中间值, C2是每个x区间的中间值,N是10x10的矩阵,记录每个区间的统计个数

如果觉得分的区间太小,可以用更大的数值填到10的位置
或者[20 30]那样,把t和x分成不同的区间追问

谢谢您 我用的20  画出来的图是这样的

两幅图确实不大一样   请问我怎样统计能画出跟上面图类似的效果 

追答

你原来的数据量太少了,统计出来的图肯定没有那么好看
网格分得太密,那么每隔的统计数字很少,图不好看
网格分得太梳,那么每隔就很大,图像就像马赛克,像你的图,也不好看

根本解决的办法还是需要更多的数据来统计

不过有个自欺欺人的办法,用插值的办法让图像好看一点,没有那么多马赛克
[N C]=hist3([t(:) x(:)],[20 20]);
N=N';
NN=imresize(N,4);%将图像扩大4倍,中间像素插值
imagesc(C1,C2,NN);
colormap(jet);

将图像扩大,原来是20x20的,扩大4倍后就是80x80,
多出来的原来没有的像素,会自动用附近像素的值插值
那么图片看上去就漂亮很多,没有那么大的马赛克
如果嫌还是不够,可以放大更大的倍数
但是正真的数据还是只有20x20,其他插值出来的数据只是让图好看一点,不是真实的

如果的有大量的数据,那么完全可以在统计的时候就用[80 80]或更密的网格,
只要数据够多,图就好看,那样的统计才是真实的

参考技术A X =(0:0.02:10);
为y = lognpdf(X,1.73,0.22);

人物,次要情节(121);

图(X,Y);
>网格;

xlabel('X'); ylabel('P')

%,这是对数正态分布

X =(0:0.02:10);

为y = normpdf( X,1.73,0.22);

副区(122);

图(X,Y);

网格;
xlabel('X'); ylabel('P') %追问

a=
20

29

16

23

26

18

b=
2.7

2.758621

-2.5625

2.956522

2.576923

-2.33333

如果我做这两列的联合分布 怎么做呢 不好意思 没怎么看懂您的答案

参考技术B 建议ilovematlab这个网站上去看,都是很专业的matlab问题

matlab使用cdfplot画累积分布函数CDF图像

假设现有一组数据,我们需要画出他的累积分布函数图像

这里我们通过正态分布随机生成两组数据

data1=normrnd(0,5,[1,500]);
data2=abs(normrnd(0,5,[1,500]));
他们的分布分别为下图所示:

 

 

 

 

 

 

使用cdfplot函数就可以简单的画出他们的累积分布函数曲线

figure(1)
hold on
cdfplot(data1)
cdfplot(data2)
box on
如下图所示:

 

 

 

这里有个问题就是cdfplot函数里面是没有选择线条类型颜色的参数的,这里可以使用下面的方法进行选择:

figure(2)
hold on
h1=cdfplot(data1)
h2=cdfplot(data2)
set(h1,\'LineStyle\', \'-.\', \'Color\', \'r\',\'LineWidth\',1)
set(h2,\'LineStyle\', \'--\', \'Color\', \'b\',\'LineWidth\',3)
box on
结果如下图

 

 


————————————————
版权声明:本文为CSDN博主「WHZhang的技术博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42623330/article/details/114287475

以上是关于matlab如何画联合分布图的主要内容,如果未能解决你的问题,请参考以下文章

如何运用matlab做联合概率分布图?

如何用matlab画正态分布曲线

用matlab如何画二维高斯分布图

用matlab怎么画误差分布图

matlab使用cdfplot画累积分布函数CDF图像

matlab画图像的像素强度分布