積み上げグラフの凡例​とプロット対象データ​の調整について

3 ビュー (過去 30 日間)
Koki Hashiguchi
Koki Hashiguchi 2019 年 7 月 29 日
コメント済み: Koki Hashiguchi 2019 年 8 月 29 日
積み上げグラフをスクリプトから作成する際、
データの値に応じてプロット対象を決めて、
凡例表示もプロットされるデータのみにしたいと考えているのですが、
それは可能でしょうか。
L1~L15の内配列内が[0;0;0]になっているL6,L11,L12,L15以外をプロットさせたいと考えております。
以上、宜しくお願いいたします。
0729.png

採用された回答

Yoshio
Yoshio 2019 年 8 月 23 日
こんな感じではどうでしょうか。ポイントはwhosを使った変数名の取得と、evalによる評価です。
なお、プログラム作成と検証のため、できるだけダミーの入力データを添付してください。
zeros3 = zeros(3,1);
L1 = [(1:3)/10]';
L12 = [0 1 1]';
L13 = [ 1 3 6]';
L14 = [0 0 0]';
L15 = [ 3 2 1]';
L2 = [ 0 0 0]';
L21 = [ 2 0 3]';
L22 = [1 2 0]';
C = whos('L*');
n = length(C)
names = [];
data = [];
i = 0;
while i < n
i = i+1;
varname =C(i).name;
val = eval(varname);
if isequal(val, zeros3)
continue
end
names = [names {varname}];
data = [data val];
end
data
names
bar(data,'stacked')
legend(names)
bar.jpg
  1 件のコメント
Koki Hashiguchi
Koki Hashiguchi 2019 年 8 月 29 日
Yoshio様
ご回答ありがとうございます。
whosを使った変数名の取得と、evalによる評価というポイントまで
解説してくださりとても分かりやすいです。
ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

タグ

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!