Bubblechar​tの凡例の色をグラフ​と揃える方法

10 visualizaciones (últimos 30 días)
柊馬
柊馬 el 4 de Nov. de 2022
Comentada: 柊馬 el 6 de Nov. de 2022
Bubblechartを使いグラフを書いています。Bubbleの色と凡例の色を揃えたいのですが、下記のようなコードでは凡例のBubbleの色が灰色になってしまいます。凡例の3つのBubbleをグラフ内のBubbleと同じ色に揃えるためにはどのようにすれば良いのでしょうか。ご教示お願いいたします。
Bubblesz = rand(5, 1, 5);
x = 10:10:50;
Ybubble = 1 : 5;
for l = 1:size(Bubblesz, 3)
for n = 1 : size(Bubblesz, 1)
sz = Bubblesz(n, 1, l);
bubblechart(x(l), Ybubble(n), sz, "yellow", 'MarkerFaceAlpha',0.20, 'MarkerEdgeColor', 'black')
hold on
end
end
hold off
xticks([10 20 30 40 50])
ylim([0 6])
yticks([1 2 3 4 5])
% 凡例
blgd = bubblelegend;
blgd.Location = 'southeastoutside';
blgd.NumBubbles = 3;

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 4 de Nov. de 2022
>凡例の3つのBubbleをグラフ内のBubbleと同じ色に揃えるためにはどのようにすれば良いのでしょうか。
凡例の色がグレーになるのは、複数系列の凡例を纏めて示す便利な機能の様です。複数の色を混ぜる訳にもいかないのでグレーをデフォルト設定としたのでしょう。これを回避する一つの方法は、単一のベクトルで一気にグラフを描いてしまう方法があります。複数系列の凡例を纏めて示した時の色の設定もどこかに有りそうなので、探して見つかったら追記します。
Bubblesz = rand(5, 1, 5);
[X,Y] = meshgrid(10:10:50, 1:5);
bubblechart(X(:),Y(:),Bubblesz(:),"yellow",'MarkerFaceAlpha',0.20,'MarkerEdgeColor','black');
xticks([10 20 30 40 50])
ylim([0 6])
yticks([1 2 3 4 5])
% 凡例
blgd = bubblelegend;
blgd.Location = 'southeastoutside';
blgd.NumBubbles = 3;
【参考】上記のグラフは色指定しなければデフォルトの青一色で表示されますが、入力座標をベクトルではなく行列で指定すると複数の系列として認識され、色も別々に分かれます。その際の凡例の色はグレーになります。
%bubblechart(X(:),Y(:),Bubblesz(:),"yellow",'MarkerFaceAlpha',0.20,'MarkerEdgeColor','black');
bubblechart(X,Y,squeeze(Bubblesz));
xticks([10 20 30 40 50])
ylim([0 6])
yticks([1 2 3 4 5])
% 凡例
blgd = bubblelegend;
blgd.Location = 'southeastoutside';
blgd.NumBubbles = 3;
  1 comentario
柊馬
柊馬 el 6 de Nov. de 2022
ありがとうございます。無事自分のコードにも反映させることが出来ました。
Bubblechartプロットの理解が深まりました。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!