horizontal boxplot with data dots on it and different colors

3 ビュー (過去 30 日間)
Hossein Mohamadi
Hossein Mohamadi 2023 年 10 月 11 日
回答済み: Voss 2023 年 10 月 31 日

could some one creat a matlab code for horizontal boxplot with data dots on it and different colors for 2 groups? similar to attached

  3 件のコメント
Hossein Mohamadi
Hossein Mohamadi 2023 年 10 月 11 日
編集済み: Dyuman Joshi 2023 年 10 月 11 日
I when i change my plot to horizontal the dots on it, disapeared and only visible on one of the boxes. change the following to horizontal and compare with the original.
%% Learning rate
clc; clear all; close all
y1 = [1.06 1.1 0.89 0.96 0.95 1 0.76 1.41 0.97 0.75 0.83 0.76 0.79 1.31 1.08 0.83]';
y2 = [1.16 1.07 1.13 1 1.01 1 0.87 1.42 1.26 0.86 0.95 0.9 1.02 1.22 1.19 0.86]';
y3 = [1.2 1.15 1.16 0.97 1.14 1 0.98 1.14 1.51 0.93 1.03 0.9 1 1.28 1.39 0.93]';
allData = {y1; y2; y3};
group = [ ones(size(y1));
2 * ones(size(y2))
3 * ones(size(y3))];
h = boxplot(cell2mat(allData),group), title('Learning Rate Across Different Memory Load','FontSize',20);
h = 7×3
10.0074 17.0073 24.0073 11.0073 18.0073 25.0073 12.0073 19.0073 26.0073 13.0073 20.0073 27.0073 14.0073 21.0073 28.0073 15.0073 22.0073 29.0073 16.0073 23.0073 30.0073
set(h, 'linewidth' ,2)
%% FontSize has been reduced to get a proper view of the figure
set(gca,'XTickLabel', {'2 Letters'; '4 Letters'; '6 Letters'},'FontSize',12)
ylabel('Response Time (Seconds)','FontSize',12);
hold on
xCenter = 1:numel(allData);
spread = 0.5; % 0=no spread; 0.5=random spread within box bounds (can be any value)
for i = 1:numel(allData)
plot(rand(size(allData{i}))*spread -(spread/2) + xCenter(i), allData{i}, 'mo','linewidth', 2)
end
Dyuman Joshi
Dyuman Joshi 2023 年 10 月 11 日
When you change the orientation, do you want to change the xticks, yticks, xlabel and ylabel as well?

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

採用された回答

Voss
Voss 2023 年 10 月 31 日
%% Learning rate
clc; clear all; close all
y1 = [1.06 1.1 0.89 0.96 0.95 1 0.76 1.41 0.97 0.75 0.83 0.76 0.79 1.31 1.08 0.83]';
y2 = [1.16 1.07 1.13 1 1.01 1 0.87 1.42 1.26 0.86 0.95 0.9 1.02 1.22 1.19 0.86]';
y3 = [1.2 1.15 1.16 0.97 1.14 1 0.98 1.14 1.51 0.93 1.03 0.9 1 1.28 1.39 0.93]';
allData = {y1; y2; y3};
group = [ ones(size(y1));
2 * ones(size(y2))
3 * ones(size(y3))];
h = boxplot(cell2mat(allData),group,'Orientation','horizontal'), title('Learning Rate Across Different Memory Load','FontSize',20);
h = 7×3
10.0015 17.0002 24.0002 11.0012 18.0002 25.0002 12.0006 19.0002 26.0002 13.0004 20.0002 27.0002 14.0002 21.0002 28.0002 15.0002 22.0002 29.0002 16.0002 23.0002 30.0002
set(h, 'linewidth' ,2)
%% FontSize has been reduced to get a proper view of the figure
set(gca,'YTickLabel', {'2 Letters'; '4 Letters'; '6 Letters'},'FontSize',12)
xlabel('Response Time (Seconds)','FontSize',12);
hold on
xCenter = 1:numel(allData);
spread = 0.5; % 0=no spread; 0.5=random spread within box bounds (can be any value)
for i = 1:numel(allData)
plot(allData{i}, rand(size(allData{i}))*spread -(spread/2) + xCenter(i), 'mo','linewidth', 2)
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Distribution Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by