How do I create a multiline plot using values from a table?
이전 댓글 표시
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
Nora Khaled
2020년 11월 12일
so for each user you want diffrent line and data1 is the x axis then for Data2 ~ Data500 are the in the y axis ?
Aryan Cross
2020년 11월 12일
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.
Aryan Cross
2020년 11월 12일
답변 (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
Aryan Cross
2020년 11월 12일
Nora Khaled
2020년 11월 12일
편집: Nora Khaled
2020년 11월 12일
add this line:
set(gca,'xticklabel',my_table.Properties.VariableNames)
Nora Khaled
2020년 11월 12일
or this to control the text angle:
set(gca,'XTickLabel',my_table.Properties.VariableNames, 'XTickLabelRotation',45)
Aryan Cross
2020년 11월 12일
Nora Khaled
2020년 11월 12일
to remove the "user" use:
set(gca,'XTickLabel',my_table.Properties.VariableNames(2:end), 'XTickLabelRotation',45)
But I don't get what you mean by "t is also only countring the 1st 3 column variables when minimized and 6 when it is maximized instead of going all the way till the end."
Aryan Cross
2020년 11월 12일
Aryan Cross
2020년 11월 12일
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
카테고리
도움말 센터 및 File Exchange에서 Axis Labels에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
