我試圖根據reverse ordering of legend colors in matlab bar plot來扭轉我的圖例條目順序,但它似乎不適用於我的情況。Matlab:保存後翻轉圖例順序和圖例重疊圖
Basicaly我有一個GUIDE圖,繪製了很多的圖,並能夠將它們保存爲.png文件。效果如下所示:
我設法通過顛倒圖例來更改文本順序,但我無法更改圖例顏色順序。 下面是我得到了什麼:
[a b] = legend(legenda);
map = colormap; % current colormap
n = size(b,1);
z = linspace(size(map,1),1,n/3); % there is 1 text and 2 line elements for every data series, so I divide by 3
z = round(z); %otherwise matlab gets angry that indices must be real integers or logicals
MAP = map(z(:),:); % gets elements specified by linspace from colormap
到目前爲止,一切工作正常。
兩個系列中的向量b看起來像這樣(始於2.0,因爲它是相反的):
Text (P+C 200 2.0.dpt)
Text (P+C 200 1.0.dpt)
Line (P+C 200 2.0.dpt)
Line (P+C 200 2.0.dpt)
Line (P+C 200 1.0.dpt)
Line (P+C 200 1.0.dpt)
所以我想通了(基於鏈接的代碼),我不得不改變顏色變量每一行條目。
for k = (n/3 + 1):n
a1 = get(b(k),'Children');
set(a1,'FaceColor',MAP(ceil((k - n/3)/2), :));
end
Ceil和除以2給出兩次相同的索引。
然而,這段代碼什麼都不做。
我檢查翻轉傳說矢量是否可能是我的問題的來源,但顏色順序保持不變。我也嘗試過MAP矢量 - 沒有運氣。
當我在A1後刪除分號= ...在for循環線,我得到:
a1 =
0x0 empty GraphicsPlaceholder array.
我怎樣才能得到這個工作?
此外,有沒有什麼好方法可以讓圖例在保存後不覆蓋圖(請參閱上面的圖片)?
我保存它的方式是通過創建一個臨時圖形'可見''關閉'並做一個軸和圖例副本,然後保存。否則它會保存整個數字。