Adding a scatter of points to a boxplot
88 ビュー (過去 30 日間)
古いコメントを表示
Does anyone come with with a code which can match the python generated boxplot?
1 件のコメント
dpb
2018 年 4 月 29 日
Presuming the points actually a set of coordinates as shown, don't see why
hold on
scatter(x,y)
with appropriate x,y arrays and the associated color arrays, etc., wouldn't come reasonably close...
採用された回答
dpb
2018 年 4 月 29 日
Indeed, that seems to work just fine...
load carsmall MPG % the sample dataset variable
hold on
scatter(ones(size(MPG)).*(1+(rand(size(MPG))-0.5)/10),MPG,'r','filled')
yields

It's possible to add color with value scaling in scatter see the details on it for all the particulars.
5 件のコメント
Rubina Chandnani
2021 年 7 月 22 日
In the line of code in scatter, is there a way to use a different color using uisetcolor? (I don't want to use the default colors).
Seth DeLand
2022 年 5 月 26 日
編集済み: Seth DeLand
2022 年 5 月 26 日
I'd like to add that there is now an easier way to do this with boxchart (added in R2020a) and swarmchart (added in R2020b):
load carsmall MPG % the sample dataset variable
MPG(:,2)=MPG(:,1).*2;
MPG(:,3)=MPG(:,1).*3;
boxchart(MPG)
hold on
x = repmat(1:3,100,1); % create the x data needed to overlay the swarmchart on the boxchart
swarmchart(x,MPG,[],'red')
その他の回答 (2 件)
Hassan
2019 年 5 月 18 日
Hi, here you can find a one line solution for the jitter like function using the 'undocumented matlab' features.
load carsmall MPG
figure;
MPG(:,2)=MPG(:,1).*2;
MPG(:,3)=MPG(:,1).*3;
boxplot(MPG);
hold on;
x=repmat(1:3,length(MPG),1);
scatter(x(:),MPG(:),'filled','MarkerFaceAlpha',0.6','jitter','on','jitterAmount',0.15);
Best, HM
1 件のコメント
Junru Ruan
2019 年 12 月 13 日
This is the best answer! very nice presentation.
Tips: if you used group in box plot, do a 'unique' to get the right x axis.
boxplot(report_table.data,report_table.group_id);
hold on
[C, ~, ic]= unique([report_table.group_id],'stable');
scatter(ic,report_table.data,'filled','MarkerFaceAlpha',0.6','jitter','on','jitterAmount',0.15);
xlabel('Group ID');
ylabel('Data');
hold off
Ernesto Salcedo
2020 年 11 月 27 日
編集済み: Ernesto Salcedo
2020 年 11 月 27 日
Boxchart solution for grouped categorical data
Table with random group
count = 20;
T = table(randi(10,count,1), categorical(repmat(["papaya";"silicon"], count/2,1)),'VariableNames',["Recharges","model"])
T.idx = grp2idx(T.model); % convert categories into group indices
Boxchart
figure
hc = boxchart(T.idx, T.Recharges); % group by index
hold on
% overlay the scatter plots
for n=1:max(unique(T.idx))
hs = scatter(ones(sum(T.idx==n),1) + n-1, T.Recharges(T.idx == n),"filled",'jitter','on','JitterAmount',0.1);
hs.MarkerFaceAlpha = 0.5;
end
set(gca,"XTick", unique(T.idx),"XTickLabel",categories(T.model))

0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Scatter Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!