Grouped bar graph with scatter plot
4 ビュー (過去 30 日間)
古いコメントを表示
This code is close but getting the SEM over the first and last bars. Does anyone have any suggestions for the scatter code?

model_series=[nanmean(tmpdata1aS_Mean) nanmean(all_dyn1l1p0aS_Pre); nanmean(tmpdata1aS_MeanP) nanmean(all_dyn1l1p0aS_Post)];
model_error=[tmpdata1aS_SEM dyn1l1p0aS_PreSEM; tmpdata1aS_SEMP dyn1l1p0aS_PostSEM];
model_scatter=[tmpdata1aS_Mean all_dyn1l1p0aS_Pre; tmpdata1aS_MeanP all_dyn1l1p0aS_Post];
b=bar(model_series, 'grouped');
hold on
ngroups = size(model_series, 1);
nbars = size(model_series, 2);
groupwidth = min(0.8, nbars/(nbars + 1.5));
% Based on barweb.m by Bolu Ajiboye from MATLAB File Exchange
for i = 1:nbars
% Calculate center of each bar
x = (1:ngroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*nbars);
errorbar(x, model_series(:,i), model_error(:,i), 'k', 'linestyle', 'none');
scatter(x(i).* ones(length(model_scatter(i,:)),1),model_scatter(i,:),'*')
end
hold off
Thoughts?
2 件のコメント
回答 (1 件)
Adam Danz
2020 年 6 月 18 日
編集済み: Adam Danz
2020 年 6 月 18 日
Here are some demo you can follow to get the x-coordinate of the center of each bar. Any one of them should be sufficient.
- https://www.mathworks.com/matlabcentral/answers/462532-multi-bar-labeling-plot
- https://www.mathworks.com/matlabcentral/answers/500168-add-error-bars-in-bar-graph
- https://www.mathworks.com/matlabcentral/answers/481900-plot-multiple-errorbars-in-pairs
Use the x-coordinates to specify the location of the scatter points.
3 件のコメント
Adam Danz
2020 年 6 月 18 日
編集済み: Adam Danz
2020 年 6 月 18 日
It looks like you're looping over the bar-groups. If 'x' defines the center of each bar within group i, then x would have 2 values since there are two groups. model_scatter(i,:) is a vector. How do you decide which bar those points are plotted to?
Don't forget we can't run your code without inputs.
Adam Danz
2020 年 6 月 18 日
編集済み: Adam Danz
2020 年 6 月 23 日
You probably don't need a loop. Why not just compute all x-values to all bars in 1 line of code, then add the errorbars in 1 line of code, then add the scatter points in 1 line of code? Why loop over the bar-groups. I think that complicates things.
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!