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

10 vues (au cours des 30 derniers jours)
柊馬
柊馬 le 4 Nov 2022
Commenté : 柊馬 le 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;

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!