只是想知道如果任何人有任何關於我有問題的想法。修剪數據更好地查看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