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

조회 수: 10 (최근 30일)
柊馬
柊馬 2022년 11월 4일
댓글: 柊馬 2022년 11월 6일
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;

채택된 답변

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 データ分布プロット에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!