编辑:我被要求添加更多细节。最初我有一个360x180矩阵,其中有EP值数据,这些值代表蒸发(E)和降水(P),它们基本上表示水分来源(EP> 0)和水槽(EP <0) 。为了获得最重要的水分来源,我必须只取正值,我想得到这些值的百分位数95,然后绘制高于这个阈值的值,因为我想做一个可重复的例子我使用了peaks
数据:
我在MATLAB中做过这个,但是如果它可以在R上制作,它也适用于我。
我有一个像这样的49x49矩阵示例:
a = peaks;
pcolor(a);
caxis([-10 10]);
cbh=colorbar('v');
set(cbh,'YTick',(-10:1:10))
我想要做的是获得只有正值的百分位数95,然后绘制它们。
我怎样才能做到这一点?还有什么会更好:用0或Nan取代所有小于零的值?
如果您有统计工具箱,则可以使用prctile
函数获取百分位数。我没有这个工具箱,所以我写了my own version (a long time ago) based on the code for the function median
。无论是prctile
还是percentile
,您都可以:
a = peaks;
t = percentile(a(a>0),95);
b = a > t;
subplot(1,2,1)
pcolor(a);
subplot(1,2,2)
pcolor(b);
qazxsw poi是qazxsw poi中具有所有正值的向量。 qazxsw poi是这个载体的第95百分位数。
a(a>0)