How do I create a multiline plot using values from a table?
17 次查看(过去 30 天)
显示 更早的评论
For example, I have a table:
User Date1 Date2 ....(I have 500+ dates)
{'A'} 1 6 ...
{'B'} 2 8 ...
{'C'} 3 9 ...
{'D'} 4 11 ...
The dates would be located in the x-axis and the values would be in the y-axis. Each user would be a separate line on that graph. I was thinking of converting it to an array and then attempting to plot that but that method does not seem to be working since I have different types of data in this table. What would be the most efficient way of doing this?
4 个评论
Subhadeep Koley
2020-11-12
Aryan Cross what all "different types of data" your table has?
In order to plot a particular value (for a certain user and date), the value needs to be numeric. And if values are numeric then converting them to array before plotting seems an efficient way.
回答(1 个)
Nora Khaled
2020-11-12
If I understand the problem correctly this might help
% creating tabel exampel
col1 = {'A';'B';'C';'D';'E'};
col2 = [1:1:5]';
col3 = randi(5,5,1);
col4 = randi(5,5,1);
col5 = randi(5,5,1);
col6 = randi(5,5,1);
my_table = table(col1,col2,col3,col4,col5,col6);
%plot data for each user
[r,c]=size(my_table);
for i=2:1:r
plot(my_table{i,2:end});
hold on;
end
legend(my_table{:,1});
8 个评论
Nora Khaled
2020-11-13
Ok... try this:
set(gca,'XTick',1:length(my_table.Properties.VariableNames(2:end)),'XTickLabel',my_table.Properties.VariableNames(2:end), 'XTickLabelRotation',45)
Also, change the loop vaiable to start from 1 :
for i=1:1:r
plot(my_table{i,2:end});
hold on;
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!