グラフの凡例をfor文を使って全て反映したい。
17 ビュー (過去 30 日間)
古いコメントを表示
添付のデータの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 件のコメント
採用された回答
Hernia Baby
2021 年 9 月 16 日
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);
その他の回答 (1 件)
Atsushi Ueno
2021 年 9 月 16 日
足りないのはhold onです。
% 途中まで省略
hold on;
legend()%←添付のデータあれば凡例は'A','B','C'となるようにしたい。
end
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!