因此,我有一系列的温度记录器,它们都有一个特定的名称,我想将它们绘制如下:
现在,正如您在我添加的示例图中看到的那样,图例自动将这些线标记为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
的结构。
发布于 2018-10-22 18:11:18
您可以使用plot
的DisplayName
参数,结合动态检索表变量名,自动完成此操作。
vNames = data.Properties.VariableNames;
for ii = 2:2:35
plot( data{:,1}, data{:,ii}, 'DisplayName', vNames{ii} );
end
现在,当您调用legend
时,该系列将根据表变量名命名。
请注意,一旦获得了变量名,就可以用它们对表进行等价的索引(而不是直接使用ii
),如下所示:
vNames = data.Properties.VariableNames;
for ii = 2:2:35
plot( data.Date, data.(vNames{ii}), 'DisplayName', vNames{ii} );
end
https://stackoverflow.com/questions/52926009
复制相似问题