考慮下面的例子:MATLAB劇情 - 圖例條目爲多個數據行 - getcolumn
x = magic(3);
figure(1); clf(1);
plot(x, '-r', 'DisplayName', 'Magic');
legend('show');
的在MATLAB 所得圖例條目R2014a是
getcolumn(魔術,1)
getcolumn (Magic,2)
getcolumn(Magic,3)
問題從function [leg,labelhandles,outH,outM] = legend(varargin)
在legend.m
(版權所有1984年至2012年MathWorks公司),線628莖:
str{k} = get(ch(k),'DisplayName');
更具體地,功能get
- 預規劃
getcolumn(
和 - 追加
, <Column Number>)
。
有一種簡單的方法來顯示DisplayName
命名的多行數據,它們具有相同的視覺特性正好一個圖例項(或多個,但沒有預先追加字符串)?
當然,另一種方法是通過繪圖手柄以編程方式創建多個(或一個)圖例條目(請參見下文),但我想保持簡短。
一個條目:
x = magic(3);
figure(1); clf(1);
h = plot(x, '-r');
legend(h(1), 'Magic');
多個條目:
x = magic(3);
figure(1); clf(1);
h = plot(x, '-r');
strL = cell(1, numel(h));
for k = 1:numel(h)
strL{k} = sprintf('Magic %d', k);
end
legend(h, strL);
在MATLAB R2014b,與getcolumn(名稱,行)的問題不會再出現了第一代碼示例。