如何绘制具有特定 x 值的累积图?
How can I plot cumulative plots with specific x values?
我试图找出如何绘制具有特定 x 值的累积分布函数 (cdf) 但没有成功。
例如,如果数据集是:
x = [2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45];
y = [0.20 0.09 0.15 0.13 0.17 0.04 0.7 0.15]; % (total 1)
当我使用 y = cdfplot(x)
.
时,图形形状肯定看起来不对
我还用 cumsum(y)
和 x
绘制了图表以检查形状,看起来不错,但我想知道是否有任何代码可以绘制累积分布图。
这里有创建 "stairstep graphs" 的 stairs
功能,这应该正是您想要的,并结合了您的 cumsum(y)
想法。
请看下面的代码片段。我为某个间隔的开始和结束添加了两个额外的点,这里 [0 ... 25]
。此外,您在 y
中的值加起来大于 1,因此我也修改了这些值。
x = [0 2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45 25];
y = [0 0.10 0.09 0.05 0.10 0.14 0.04 0.4 0.08 0];
stairs(x, cumsum(y));
xlim([-1 26]);
ylim([-0.2 1.2]);
这就是输出(Octave 5.1.0,但也使用 MATLAB Online 进行了测试):
希望对您有所帮助!
我试图找出如何绘制具有特定 x 值的累积分布函数 (cdf) 但没有成功。
例如,如果数据集是:
x = [2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45];
y = [0.20 0.09 0.15 0.13 0.17 0.04 0.7 0.15]; % (total 1)
当我使用 y = cdfplot(x)
.
我还用 cumsum(y)
和 x
绘制了图表以检查形状,看起来不错,但我想知道是否有任何代码可以绘制累积分布图。
这里有创建 "stairstep graphs" 的 stairs
功能,这应该正是您想要的,并结合了您的 cumsum(y)
想法。
请看下面的代码片段。我为某个间隔的开始和结束添加了两个额外的点,这里 [0 ... 25]
。此外,您在 y
中的值加起来大于 1,因此我也修改了这些值。
x = [0 2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45 25];
y = [0 0.10 0.09 0.05 0.10 0.14 0.04 0.4 0.08 0];
stairs(x, cumsum(y));
xlim([-1 26]);
ylim([-0.2 1.2]);
这就是输出(Octave 5.1.0,但也使用 MATLAB Online 进行了测试):
希望对您有所帮助!