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

積み上げグラフをスクリプトから作成する際、
データの値に応じてプロット対象を決めて、
凡例表示もプロットされるデータのみにしたいと考えているのですが、
それは可能でしょうか。
L1~L15の内配列内が[0;0;0]になっているL6,L11,L12,L15以外をプロットさせたいと考えております。
以上、宜しくお願いいたします。
0729.png

 Respuesta aceptada

Yoshio
Yoshio el 23 de Ag. de 2019

0 votos

こんな感じではどうでしょうか。ポイントは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 comentario

Koki Hashiguchi
Koki Hashiguchi el 29 de Ag. de 2019
Yoshio様
ご回答ありがとうございます。
whosを使った変数名の取得と、evalによる評価というポイントまで
解説してくださりとても分かりやすいです。
ありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2018b

Etiquetas

Preguntada:

el 29 de Jul. de 2019

Comentada:

el 29 de Ag. de 2019

Community Treasure Hunt

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

Start Hunting!