我有兴趣在Matlab中创建这样的情节。 Plot of Means http://www.3rs-reduction.co.uk/assets/images/rcmdr2202.JPG
通过“喜欢这个”,我的意思是我希望有两组,称他们为A和B,观察两次,预处理和后处理,其中情节由A和B的左边一组框图组成在预处理时,正确的组由治疗后时间A和B的箱线图组成,其中A pre的平均值通过线连接到A柱的平均值,B pre的平均值用线连接到平均值B帖子。我并不是说需要保持颜色形状或线条(而不是盒子)的特定外观。
我尝试使用boxplot命令到达并使用“hold on”,但我无法弄清楚如何使它们完全融合在一起。为了得到具体的结论,假设像Matlab boxplot命令一样,观察结果是行,字段是列,顺序是((A,pre),(A,post),(B,pre),( B,柱))。
构建的一些示例代码:
simlength = 100;
groupmeans = [.1, .2, .2, .4];
groupstddev = [.05, .05, .05, .05];
simholder = randn(simlength,4);
simholder = repmat(groupmeans ,simlength,1) + simholder .* repmat(groupstddev ,simlength,1);
boxplot(simholder)
如果我可以堆叠结果1和3以及该箱图的结果2和4并在组之间绘制线条意味着我会非常高兴,只是不确定如何将所有部分组合在一起。
谢谢!
答案 0 :(得分:1)
如何处理以下内容:
x = rand(2, 1); % ? maybe just leave out?
y = rand(2, 1); % [mean(Apre), mean(Apost)]
e = rand(2, 1)*.2; % ? is this maybe [std(Apre), std(Apost)]
errorbar(x, y, e, 'o-'); % You can leave off the x here if you don't need it
hold all
%Now repeat for B
x = rand(2, 1);
y = rand(2, 1);
e = rand(2, 1)*.2;
errorbar(x, y, e, '^-');
legend({'First series', 'Second Series'})
答案 1 :(得分:0)
Dan的答案很接近(谢谢!),但没有包含模仿上图所需的格式细节。一旦我弄清楚如何做到这一点,我尝试编辑他来添加所需的更改,但编辑不关心我的更改。所以这里是我想要的。
y1 = rand(2, 1);
e1 = rand(2, 1)*.2;
errorbar(y1, e1, 'o-');
hold all
%Now repeat for B
y2 = rand(2, 1);
e2 = rand(2, 1)*.2;
errorbar(y2, e2, '^-');
plotrange = [y1-e1;y2-e2;y1+e1;y2+e2];
yplotmin = min(plotrange)* .5;
yplotmax = max(plotrange) * 1.5;
legend({'Control', 'Treatment'})
set(gca,'YLim',[yplotmin yplotmax])
set(gca,'XLim',[.5 2.5])
set(gca,'XTick',1:2)
set(gca,'XTickLabel',{'Pre-treatment', 'Post-treatment'});