グラフの凡例をfor文を使って全て反映したい。
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
丈太郎 森川
am 16 Sep. 2021
Kommentiert: 丈太郎 森川
am 16 Sep. 2021
添付のデータの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 Kommentare
Akzeptierte Antwort
Hernia Baby
am 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);
Weitere Antworten (1)
Atsushi Ueno
am 16 Sep. 2021
足りないのはhold onです。
% 途中まで省略
hold on;
legend()%←添付のデータあれば凡例は'A','B','C'となるようにしたい。
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Legend finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!