我试图根据Matlab柱状图中图例颜色的反向排序来反转我的图例条目顺序,但在我的情况下似乎不起作用。基本上我有一个GUIDE图形,它绘制了很多图,并能将它们保存为.png文件。效果如下:
我通过翻转图例来改变文本顺序,但我无法更改图例颜色顺序。以下是我的代码:
![http://i.imgbox.com/KzEFAdia.png](https://istack.dev59.com/QKqMW.webp)
[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
向上取整并除以2会使索引两次相同。
然而,此代码不起作用。
我已经检查过翻转图例向量是否是问题的根源,但颜色顺序保持不变。我也尝试过使用MAP向量-没有运气。
当我在for循环中去掉a1 = ...行后面的分号时,我得到了:
a1 =
0x0 empty GraphicsPlaceholder array.
我该如何使其正常工作?
此外,在保存后,有没有好的方法可以使图例不覆盖图表(见上面链接的图片)?
我保存的方式是通过创建一个“可见性”为“关闭”的临时图形,并复制轴和图例,然后保存。否则它会保存整个图形。