我有一个关于使用Matlab绘制概率分布和累积分布曲线的问题。我为问一个菜鸟问题而道歉,但我是Matlab的新手,只用了几个小时。
我有一组数据,其大小范围为沙滩上的沙粒,单位为毫米。 (例如:> 2.00,1.00-2.00,0.50-0.00,<0.50) 它们找到这些砂粒的相应百分比如下: (例如:30,25.5,35.9,8.6)。
如何在Matlab系统中输入值,以便在不同颜色的同一图上绘制概率分布和累积分布曲线?百分比应为y轴,尺寸范围应为x轴。
请指教。
答案 0 :(得分:1)
如果你的数据集实际上是4分,那么你可以简单地输入它们。例如,如果我的数据集是{(A,1),(B,2),(C,3)},那么我们可以简单地设置y = [1, 2, 3]
和x = {'a', 'b', 'c'}
。
对于发布,您应该查看sum
和cumsum
函数。
对于绘图,请查看bar
的频率图和plot
的累积图(这只是我的偏好)。该文档包含有关设置颜色的信息。
要绘制同一图表,请查看hold
。要标记地块和轴,请查看xlabel
,ylabel
和title
。
Matlab有一个很好的FAQ on setting the actual values that are displayed on each axis。例如,我可以通过仅绘制y
向量,然后将X刻度标签设置为'A','B'和'C'来绘制上面的数据集。
答案 1 :(得分:0)
我会谨慎对待CDF。可能需要按照增大的粒度对数据进行重新排序(请参阅fliplr
),否则可能会怀疑CDF的解释。
label={'<0.50','0.50-1.00','1.00-2.00','>2.00'}';
pmf = [0.086 0.359 0.255 0.30]';
cdf = cumsum(pmf);
bar(pmf) % PMF
set(gca,'XTickLabel',label)
title('Sand Particle Size Distribution')
xlabel('Sand particle size (mm)')
figure
stairs(cdf,'ks-','LineWidth',2.0) % CDF
set(gca,'XTick',1:length(label),'XTickLabel',label)
ylabel('Percentile')
xlabel('Sand particle size (mm)')
ylim([0 1])