Grouped bar graph with scatter plot
22 次查看(过去 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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Errorbars 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!