Boxchartの色をそれぞれ変える方法

21 views (last 30 days)
悠暉 小島
悠暉 小島 on 12 Jan 2024
Answered: Atsushi Ueno on 3 Feb 2024
3つの箱ひげ図を並べた状態で色をそれぞれ違う色にするにはどのようにすればよいでしょうか.
boxcolor = ["#4DBEEE", "#D95319", "#EDB120"];
data1 = rand(10,3);
figure;
hold on
for n = 1:3
b = boxchart(data1(:,n));
b.BoxFaceColor = boxcolor(n);
end
xticklabels({'A','B','C'})
この書き方だと3つの図が重なってしまいます.
↓の図の配置で色だけそれぞれ変えたいです.

Answers (2)

covao
covao on 30 Jan 2024
Edited: covao on 31 Jan 2024
箱ひげ図を色分けして表示する場合、boxplotを使うとシンプルに記述できます。
boxplotは16進数カラーコードに対応していないため、プロットの色名で指定しています
以下は、boxplotで3つの箱ひげ図を色分け表示する例です。(生成AIを使用しています)
% データ生成
A = rand(10, 1);
B = rand(10, 1);
C = rand(10, 1);
% 箱ひげ図作成
figure
boxplot([A, B, C], 'Colors', ['r', 'g', 'b'],'Labels',{'A','B','C'});
  1 Comment
Atsushi Ueno
Atsushi Ueno on 3 Feb 2024
boxplot 関数を使うには Statistics and Machine Learning Toolbox 等の Toolbox が必要です。

Sign in to comment.


Atsushi Ueno
Atsushi Ueno on 3 Feb 2024
boxchart 関数に色を設定する機能 ('GroupByColor') がありますが考え方が少し違ってて、定義されたグループ毎の要素の色を設定する機能となっています。
下記の例ではこの機能は使っておらず、X座標の位置を変えて3回 boxchart 関数で描画した結果を重ねた形になっています。
boxcolor = ["#4DBEEE", "#D95319", "#EDB120"];
data1 = rand(10,3);
xdata = ones(10,1);
figure;
hold on
for n = 1:3
b = boxchart(xdata*n, data1(:,n));
b.BoxFaceColor = boxcolor(n);
end
xticks([1 2 3]);
xticklabels({'A','B','C'});

Tags

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!