# Plot a table and generate legend from values from the table

조회 수: 61(최근 30일)
Nazar Adamchuk 2021년 9월 1일
답변: Star Strider 2021년 9월 1일
I have following table (you can find the file in the attachment): I am reading this table in MATLAB and creating a plot of three lines (I am interested in the lines for the stress ratio "-1") as follows:
plot([imported{1, {'a','c'}}], imported{1,{'b', 'd'}},...
[imported{3, {'a','c'}}], imported{3,{'b', 'd'}},...
[imported{4, {'a','c'}}], imported{4,{'b', 'd'}});
Then I recieve such result: While plotting I know that the ''-1" stress ratio data are in the lines 1, 3 and 4 in the table "imported". But what if I don't know where are the lines with stress ratio "-1" and I have, for example, stress ratios "1" and "0". Moreover, let es assume I have more then 1000 data.
I would like to have a script be created that founds data for "-1" stress ratio and adds a following legend: 댓글을 달려면 로그인하십시오.

### 채택된 답변

Star Strider 2021년 9월 1일
Try this —
imported = 4×7 table
a b c d StressRatio Microstructure1 Microstructure2 _ _ _ _ ___________ _______________ _______________ 1 2 2 5 -1 77 23 2 3 4 5 0 70 30 3 3 4 7 -1 74 26 7 4 6 1 -1 71 29
lgdtbl = imported(imported{:,5}<0,[6 7]);
lgdvn = join(lgdtbl.Properties.VariableNames, ' ');
lgdnum = compose('%2d %2d', table2array(lgdtbl));
figure
plot([imported{1, {'a','c'}}], imported{1,{'b', 'd'}},...
[imported{3, {'a','c'}}], imported{3,{'b', 'd'}},...
[imported{4, {'a','c'}}], imported{4,{'b', 'd'}});
hlgd = legend(lgdnum, 'Location','S');
title(hlgd, lgdvn) This is likely as close as it is possible to get to what you want.
Experiment to get different results.
.

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!