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

14 views (last 30 days)
柊馬
柊馬 on 4 Nov 2022
Commented: 柊馬 on 6 Nov 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;

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 4 Nov 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 Comment
柊馬
柊馬 on 6 Nov 2022
ありがとうございます。無事自分のコードにも反映させることが出来ました。
Bubblechartプロットの理解が深まりました。

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!