Bubblechartの凡例の色をグラフと揃える方法
17 views (last 30 days)
Show older comments
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;
0 Comments
Accepted Answer
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;
More Answers (0)
See Also
Categories
Find more on データ分布プロット in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!