matlab - 选择情节中最靠前的线
问题描述
我正在尝试绘制一些实验结果。我有大约 50 条线,我希望其中一条更宽并显示在顶部。
代码如下:
figure(1)
hold on
plot(Time,Delta(:,2),'red','linewidth',2)
for k = 1:i-1
if k == Index
plot(Time,Delta_PWM{1,k},'color','black','linewidth',2)
else
plot(Time,Delta_PWM{1,k},'color',[160 160 160]/255)
end
end
我希望情节k == Index
不仅更宽,而且要显示在其他线条之上,因为到目前为止我得到了以下信息:
我想要得到的是高于所有灰线的黑线。
我设法通过这样做来解决它:
figure(1)
hold on
plot(Time,Delta(:,2),'red','linewidth',2)
for k = 1:i-1
if k ~= Index
plot(Time,Delta_PWM{1,k},'color',[160 160 160]/255)
end
end
plot(Time,Delta_PWM{1,Index},'color','k','linewidth',2)
但是我试图了解是否有更智能的方法。
谢谢
解决方案
根据this answer,您可以使用该功能将一条线移到前面uistack
。但是您也可以if
通过将行句柄存储在数组中并修改适当的句柄来从程序中删除重复的代码:
figure
hold on
N = size(Delta_PWM,2);
h = gobjects(1,N); % Pre-allocate an array of handles
for k = 1:N
h(k) = plot(Time,Delta_PWM{1,k},'color',[160 160 160]/255)
end
uistack(h(Index),'top'); % Move line to the front
set(h(Index),'Color','Black','LineWidth',2); % Change its properties
推荐阅读
- c# - LibGit2SharpException v0.26.0.0 - git fetch 暴露异常“重定向或身份验证重放私有存储库太多”
- kotlin - io.mockk.MockKException:找不到答案:SavedStateHandle(#1).set(Key, Something)
- common-lisp - 如何在 Lisp 的宏中修复“X 不是数字”
- python - 使用 sqlalchemy 和上下文管理器,数据库没有更新
- javascript - 角度变量错误null
- android - 在 Android Studio 中以编程方式将文本添加到 TextView
- veins - 如何在静脉 5.0 中获得车辆计数?
- bash - 为什么“at”命令不将数据发送到指定的输出文件?
- python - 不清楚如何从 Statsmodels 中的多变量 ARX 中获取单个预测向量
- angular - 处理Angular中的浏览器刷新按钮