gpt4 book ai didi

matlab - 添加与图表无关的自定义图例

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:36 25 4
gpt4 key购买 nike

我想插入一个与图表无关的图例:

figure;
hold on;
plot(0,0,'or');
plot(0,0,'ob');
plot(0,0,'ok');
leg = legend('red','blue','black');

现在我想把它添加到另一个图形中:

figure;
t=linspace(0,10,100);
plot(t,sin(t));
%% ADD THE LEGEND OF PLOT ABOVE

最佳答案

我以前是这样解决这个问题的:

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');

这将绘制附加点,但由于坐标位于 NaN,因此它们在绘图本身上不可见:

enter image description here

编辑 26/10/2016: 我的原始答案导致 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');

这将绘制额外的点,但它们在绘图本身上是不可见的。

如果元素很多,也可以使用copyobj将图形元素从一个图形复制到另一个图形,然后使用set(x, 'visible', 'off') 在显示图例之前隐藏它们,但这取决于您的最终应用程序是什么。

关于matlab - 添加与图表无关的自定义图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com