gpt4 book ai didi

matlab - 循环绘图、标记和图例

转载 作者:行者123 更新时间:2023-12-02 15:18:01 24 4
gpt4 key购买 nike

我想在循环中绘制图表、标记点和编写图例。

labels = {}
for i = 1: size(error,1)
r = plot(handles.axes1,temp(i).time,temp(i).signal);
hold (handles.axes1, 'on')
a = %find minimum index
xmin = temp(i).time(a);
ymin = temp(i).signal(a);
plot(handles.axes1,xmin,ymin,'ro')
labels{end+1} = sprintf('Type : %s, %f,%f',error{i,1}.main(1,1).type,xmin,ymin)
end

grid on
legend(r, labels);

标签不起作用,因为它只需要第一个元素而忽略额外的元素。整个方法一团糟,颜色代码全乱了,有没有优雅的方法可以让我的图例颜色与情节颜色相匹配

最佳答案

另一种方法是使用 DisplayName 关键字。

for i = 1:N_lines
%...
r(i) = plot(handles.axes1, temp(i).time, temp(i).signal, 'DisplayName', labels{i});
%...
end
legend('show')

这样做的好处是它可以将名称直接附加到标绘点。如果您正在调试,并在绘图浏览器中打开正在编写的绘图,则在绘制每个点时,名称将出现在右侧 Pane 中该点的旁边。您也不需要跟踪单独的 labels 变量,以防您稍后出于某种原因重新排序您的点。这样,标签始终与其关联的点一起移动。


我应该补充一点,当您调用带有标签单元格的 legend 命令时,它会回填 'DisplayName',以便您仍然可以更改和查询它即使您没有像我在上面所做的那样明确设置情节,也可以在情节建立之后。但是,我发现这种方法是 self 记录的并且更方便,因为它减少了一件需要跟踪的事情。

关于matlab - 循环绘图、标记和图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207938/

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