jar*_*ead 26 matlab legend matlab-figure
我希望插入一个与图表无关的图例:
figure;
hold on;
plot(0,0,'or');
plot(0,0,'ob');
plot(0,0,'ok');
leg = legend('red','blue','black');
Run Code Online (Sandbox Code Playgroud)
现在我想将它添加到另一个数字:
figure;
t=linspace(0,10,100);
plot(t,sin(t));
%% ADD THE LEGEND OF PLOT ABOVE
Run Code Online (Sandbox Code Playgroud)
zel*_*nix 33
这就是我过去解决这个问题的方法:
figure
t=linspace(0,10,100);
plot(t,sin(t));
hold on;
h = zeros(3, 1);
h(1) = plot(NaN,NaN,'or');
h(2) = plot(NaN,NaN,'ob');
h(3) = plot(NaN,NaN,'ok');
legend(h, 'red','blue','black');
Run Code Online (Sandbox Code Playgroud)
这将绘制附加点,但由于坐标位于NaN它们将在图表本身上不可见:
编辑2016年10月26日:我的原始答案导致2016b中的灰色传奇条目.上面的更新代码有效,但下面的答案仅在2016b之前相关:
figure
t=linspace(0,10,100);
plot(t,sin(t));
hold on;
h = zeros(3, 1);
h(1) = plot(0,0,'or', 'visible', 'off');
h(2) = plot(0,0,'ob', 'visible', 'off');
h(3) = plot(0,0,'ok', 'visible', 'off');
legend(h, 'red','blue','black');
Run Code Online (Sandbox Code Playgroud)
这将绘制附加点,但它们在绘图本身上不可见.
copyobj如果您有很多元素,还可以使用将图形元素从一个图形复制到另一个图形,然后set(x, 'visible', 'off')在显示图例之前使用它们隐藏它们,但这取决于您的最终应用程序是什么.
你的问题有点不清楚。然而,我读到它的时候首先想到的是textMatlab中的函数。
您可以使用该text函数向 Matlab 图形添加文本。它的用途是
>> text(x, y, str);
Run Code Online (Sandbox Code Playgroud)
其中x和y是图中要添加文本的坐标str。您可以使用for 颜色和 TeXColor的选项text来绘制线条甚至_. 我在使用文本绘制情节时变得非常有创意。
x = 0:pi/20:2*pi;
y = sin(x);
plot(x,y)
axis tight
legend('sin(x)');
text(5.7, 0.75, 'sin(x)');
text(5.1, 0.78, '_____', 'Color', 'blue');
Run Code Online (Sandbox Code Playgroud)
产生
对于这种特定情况,您可以使用特定命令(由@ Hoki在评论中指出)。
ht = text(5, 0.5, {'{\color{red} o } Red', '{\color{blue} o } Blue', '{\color{black} o } Black'}, 'EdgeColor', 'k');
Run Code Online (Sandbox Code Playgroud)
生产
通过检索对象的句柄,text将其复制到新图窗变得很简单copyobj(ht, newfig)。[ 1 ]
| 归档时间: |
|
| 查看次数: |
39003 次 |
| 最近记录: |