Box plotのボックス内の色を変更する方法

x = normrnd(5,1,100,1);
y = normrnd(6,1,100,1);
X = [x,y];
boxplot(X,'ColorGroup',[ ]);
とすると,BOX内の色を添付した例のように変更したい場合どのように変更しますか.
ColorGroupをどのように変更するのでしょうか.
よろしくお願い申し上げます.

 採用された回答

Akira Agata
Akira Agata 2020 年 4 月 8 日

1 投票

R2020aでMATLABの基本関数に追加されたboxchartを使うのはいかがでしょうか?
たとえば以下のようにすると、Box内と外れ値のマーカー色をグレーに指定することができます。
figure
boxchart(x,'BoxFaceColor',[0.5 0.5 0.5],'MarkerColor',[0.5 0.5 0.5])

1 件のコメント

KT
KT 2020 年 4 月 8 日
ご回答ありがとうございます。
boxchartの方が簡便で分かりやすそうです.
MATLAB R2020aの導入も考慮したいと考えます.

サインインしてコメントする。

その他の回答 (1 件)

Etsuo Maeda
Etsuo Maeda 2020 年 4 月 8 日

1 投票

別解でPatchで頑張るという方法もあります
clear; close all; rng default;
x = normrnd(5, 1, 100, 1);
y = normrnd(6, 1, 100, 1);
boxplot([x, y], 'Color', [0 0 0], 'Symbol', 'o');
h = findobj(gca, 'Tag', 'Box');
% draw patch with color
for k = 1:length(h)
patch(get(h(k), 'XData'), get(h(k), 'YData'), [0.8 0.8 0.8], 'FaceAlpha', 0.8);
end
% send patch from front to back
ax = gca;
ax.Children = ax.Children([end 1:end-1]);
HTH

3 件のコメント

KT
KT 2020 年 4 月 8 日
回答ありがとうございます.
以下構文
% send patch from front to back
ax = gca;
ax.Children = ax.Children([end 1:end-1]);
の,ax.Children = ax.Children([end 1:end-1]); はどのような意味でしょうか.大変基礎的で申し訳ありません.
Etsuo Maeda
Etsuo Maeda 2020 年 4 月 9 日
% send patch from front to back
ax = gca;
ax.Children
ax.Children = ax.Children([end 1:end-1]);
ax.Children
として、何がCommand Windowに表示されているのか確認してみてください。
KT
KT 2020 年 4 月 10 日
ご回答ありがとうございました。

サインインしてコメントする。

カテゴリ

製品

リリース

R2018b

質問済み:

KT
2020 年 4 月 5 日

コメント済み:

KT
2020 年 4 月 10 日

Community Treasure Hunt

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

Start Hunting!