【问题标题】:How to add annotation in each subplot in MATLAB in loop?如何在循环中的MATLAB中的每个子图中添加注释?
【发布时间】:2016-01-25 05:11:52
【问题描述】:

我想在子图中添加注释(年份)来识别哪个子图属于哪一年。

到目前为止,我正在使用 title 做同样的事情,但我希望用放置在子图中的注释替换它。

怎么做?

i=1;
a=5;
step=0;
for year=2002:2013  
if mod(year,4)==0
    jump=366;
else
    jump=365;
end

subplot(4,3,i)
scatter(data_final(step+1:step+jump,11), data_final(step+1:step+jump,12),...
    a, 'filled', 'MarkerEdgeColor','b',...
          'MarkerFaceColor',[0 .7 .7],...
          'LineWidth',0.5)
set(gca, 'FontName', 'Arial', 'FontSize', 12)
xlabel('variable_1') % label x-axis
ylabel('variable_2') % label left y-axis
grid on;    
title(num2str(year));
i=i+1;
step=step+jump;
end

【问题讨论】:

  • 你试过text吗?
  • 不,我不知道“文本”。浏览时我找到了annotation,但它没有循环工作。您能否在此处提供一些text 的链接供我参考。
  • 注解在 for 循环中不起作用是什么意思?你用hold on了吗?
  • @Max 为什么hold on 会对注解做任何事情?
  • 参见:Text PropertiesAnnotation Properties。您需要指定'Parent' 属性。

标签: matlab subplot


【解决方案1】:

如果你使用legend命令呢? 换行:

title(num2str(year));

图例(num2str(year));

【讨论】:

  • 我可以在使用legend(num2str(year)) 时获得所需的年份定位。但是,它带有与正在绘制的变量相关的颜色代码。如何摆脱那种颜色代码?
  • 然后试试这个:text(max(data_final(step+1:step+jump,11))/2,max(data_final(step+1:step+jump,12)),num2str(year)); 你可以使用前两个参数来改变文本的位置。
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 2022-10-12
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多