多个PDF(概率密度函数)在一个图中沿一个轴弯曲

时间:2016-03-22 14:03:30

标签: matlab

我在框中有很多粒子,坐标 x,y,z d 数据文件中的那些。

我可以将PDF绘制为单个x位置(一个平面中的粒子),没问题。但我想做的是在x方向的几个位置绘制粒径的PDF,就像我在照片中勾勒出来的那样。

enter image description here

我想通过重新缩放和移动不同曲线可以做到这一点,但我想知道是否有更聪明的方法可以去?

1 个答案:

答案 0 :(得分:1)

您可以轻松使用触发hold on的单个地块 我们来看一个例子吧。让我生成3个正态分布(为了演示):

pdf1=makedist('Normal',1,2);
pdf2=makedist('Normal',2,3);
pdf3=makedist('Normal',3,4);

v1=pdf(pdf1,[-10:10])+1;    % x1 = 1
v2=pdf(pdf2,[-10:10])+1.5;  % x2 = 1.5
v3=pdf(pdf3,[-10:10])+2;    % x3 = 2

因此,我们有三个PDF,其各自的值在范围[±10]内进行评估,并按值11.52(分别)移动。
现在我们可以打开一个图并绘制三个PDF,记住,因为你将它们置于“垂直”位置,x值必须在y轴上,反之亦然。

figure(1)
plot(v1,[-10:10],'r'); grid on;
hold on; plot(v2,[-10:10],'g');
hold on; plot(v3,[-10:10],'b');
legend('PDF_1','PDF_2','PDF_3');
xlabel('x');
ylabel('d_{particle}');

如果您还想添加虚线,可以使用

完成上面的代码
hold on; plot(1*ones(1,length([-10:10])),[-10:10],'r--');
hold on; plot(1.5*ones(1,length([-10:10])),[-10:10],'g--');
hold on; plot(2*ones(1,length([-10:10])),[-10:10],'b--');

此代码将返回 enter image description here