グラフの凡例をfor文を使って全て反映したい。
21 views (last 30 days)
Show older comments
添付のデータの1列目の文字違いでグラフで色分けし、凡例も反映したいです。
グラフの色分けはfor文を使って下記の要領で分けてできました。
ただ、凡例を反映したいのですが、どうしても最後の文字(C)だけしか反映されません。
添付のデータであれば凡例は'A','B','C'となるようにしたいです。
どのようなコードになるか教えていただけないでしょうか。
よろしくお願いいたします。
Data = readcell("質問用.xlsx")
Lot = Data(:,1)%1列目だけ抜き取り
Data1 = (Data(:,2))%2列目だけ抜き取り
Lot1 = unique(Lot, 'rows')%1列目の文字被りを削除(文字の数を確認するため)
Lot2 = length(Lot1)%文字が何個あるか確認
for c = 1 : Lot2
Lot_{c} = contains(Lot,Lot1{c})%1列目の同じ文字を確認
Lot1_{c} = find(Lot_{c}==1)%1列目の同じ文字の行数を確認
Lot1_first_{c} = Lot1_{c}(1)%1列目の各文字の最初の行数を確認
Lot1_last_{c} = Lot1_{c}(end)%1列目の各文字の最後の行数を確認
plot(Lot1_first_{c}:Lot1_last_{c},cell2mat(Data1(Lot1_first_{c}:Lot1_last_{c})),'.',"MarkerSize",30)
legend()%←添付のデータあれば凡例は'A','B','C'となるようにしたい。
end
0 Comments
Accepted Answer
Hernia Baby
on 16 Sep 2021
table型で読み込んでいます
file = '質問用.xlsx';
Data = readtable(file)
ここで凡例となる名前を取ります
name = unique(Data.Var1)
プロットします
for i = 1:length(name)
n1 = name{i};
names = string(Data.Var1);
plot(Data.Var2(names==n1),'o-')
hold on
end
legend(name);
More Answers (1)
Atsushi Ueno
on 16 Sep 2021
足りないのはhold onです。
% 途中まで省略
hold on;
legend()%←添付のデータあれば凡例は'A','B','C'となるようにしたい。
end
0 Comments
See Also
Categories
Find more on Legend in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!