MATLAB图:在图例中自动使用列变量(名称)作为显示名称

时间:2018-10-22 09:20:32

标签: matlab plot label legend

所以我有一系列温度记录器,它们都有一个特定的名称,我想按以下方式绘制它们:

example of the plot

现在,如您在我添加的示例图中所看到的,图例自动将这些行标记为data1, data2, data3,...。但是,我需要图例显示记录器的名称。因为有许多记录器,所以我需要MATLAB自动执行此操作,因为使用DisplayName并手动输入每个记录器名称将花费数小时。有谁知道如何在数据表中选择一列作为行的名称?我的表构建如下:

Name of logger 1| Date | Temperature | Name of logger 2 | Date | Temperature % and so on

这是我用于绘图的代码的一部分:

hold on
for i=2:2:35
   plot(data{:,1}, data{:,i})
end
hold off

的结构

1 个答案:

答案 0 :(得分:1)

您可以将DisplayName的{​​{1}}参数与动态检索表变量名一起使用来自动执行此操作。

plot

现在,当您调用vNames = data.Properties.VariableNames; for ii = 2:2:35 plot( data{:,1}, data{:,ii}, 'DisplayName', vNames{ii} ); end 时,将根据表变量名称来命名该系列。


请注意,一旦获得了变量名,就可以用它们等效地索引表(而不是直接legend),如下所示:

ii