只是想知道如果任何人有任何关于我有问题的想法。修剪数据更好地查看loglog图 - Matlab
我有相当数量的数据需要显示在一张图上。在顶部显示两条粗体和实心的理论线,然后聚合到这些线的10个实验数据集被绘制成图,每个使用不同的标识符(例如+或o或方形等)。这些图表的对数尺度最高可达1e6。该图的前几十年(< 1e3)看起来很好,但是由于所有数据集都收敛(> 1e3),所以很难看到数据是什么。
每十年有超过1000个数据点,我可以在一定程度上进行线性修剪,但如果我这样做太多,图表的下端将会出现分辨率问题。
我想要做的是对数修剪,在最高端最强,回到0.我的问题是:如何获得对数缩放索引向量而不是线性索引向量?
我最初的设想是,我的数据是实现线性我可以只使用一个线性指数修剪,从而导致这样的事情(而且对所有几十年):
//%grab indicies per decade
ind12 = find(y >= 1e1 & y <= 1e2);
indlow = find(y < 1e2);
indhigh = find(y > 1e4);
ind23 = find(y >+ 1e2 & y <= 1e3);
ind34 = find(y >+ 1e3 & y <= 1e4);
//%We want ind12 indexes in this decade, find spacing
tot23 = round(length(ind23)/length(ind12));
tot34 = round(length(ind34)/length(ind12));
//%grab ones to keep
ind23keep = ind23(1):tot23:ind23(end);
ind34keep = ind34(1):tot34:ind34(end);
indnew = [indlow' ind23keep ind34keep indhigh'];
loglog(x(indnew), y(indnew));
但这会导致剪枝明显表现出跳跃式的表现。每个十年都有我想要的点数,但由于它是一个线性分布,所以这些点在对数尺度上趋于在十年的高端结块。
关于如何做到这一点的任何想法?
我不明白你的问题 - 你可以发布一个示例图吗? – mtrw 2010-04-21 02:04:31